Skip to content

Commit

Permalink
Merge pull request #13 from microsoft/fix/subproject-config
Browse files Browse the repository at this point in the history
fix: subproject config & CI
  • Loading branch information
Ndiritu authored Jan 31, 2025
2 parents 575e3bc + ff27e9b commit 673beef
Show file tree
Hide file tree
Showing 25 changed files with 244 additions and 177 deletions.
53 changes: 6 additions & 47 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,6 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
package-path: [
'abstractions',
'authentication/phpleague',
'http/guzzle',
'serialization/json',
'serialization/text',
'serialization/form',
'serialization/multipart',
'bundle'
]
php-versions: ['7.4', '8.0', '8.1', '8.2', '8.3']
steps:
- name: Checkout
Expand All @@ -51,65 +41,34 @@ jobs:
php-version: ${{ matrix.php-versions }}
coverage: none
- name: Install dependencies
working-directory: packages/${{ matrix.package-path }}
run: composer install
- name: Monorepo Builder merge dependencies
run: ./vendor/bin/monorepo-builder merge
- name: Run static analysis
working-directory: packages/${{ matrix.package-path }}
run: ./vendor/bin/phpstan
- name: Run tests without coverage
working-directory: packages/${{ matrix.package-path }}
run: ./vendor/bin/phpunit --no-coverage

upload-coverage-reports:
code-coverage:
runs-on: ubuntu-latest
strategy:
matrix:
package-path: [
'abstractions',
'authentication/phpleague',
'http/guzzle',
'serialization/json',
'serialization/text',
'serialization/form',
'serialization/multipart',
'bundle'
]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
# Disabling shallow clones is recommended for improving the relevancy of reporting
fetch-depth: 0
- name: Setup PHP and Xdebug for Code Coverage report
uses: shivammathur/setup-php@v2
with:
php-version: '8.3'
coverage: xdebug
- name: Install dependencies
working-directory: packages/${{ matrix.package-path }}
run: composer install
- name: Run tests with coverage
working-directory: packages/${{ matrix.package-path }}
run: ./vendor/bin/phpunit --coverage-clover=coverage.xml
- name: Fix code coverage paths
working-directory: packages/${{ matrix.package-path }}
run: |
sed -i 's@'$GITHUB_WORKSPACE'@/github/workspace/@g' coverage.xml
echo "ARTIFACT_NAME=$(echo ${{ matrix.package-path }} | sed 's/\//-/g')" >> $GITHUB_ENV
- name: Upload code coverage report
uses: actions/upload-artifact@v4
with:
name: coverage-reports-${{ env.ARTIFACT_NAME}}
path: packages/${{ matrix.package-path }}/coverage.xml

code-coverage:
runs-on: ubuntu-latest
needs: upload-coverage-reports
steps:
- name: Checkout
uses: actions/checkout@v4
with:
# Disabling shallow clones is recommended for improving the relevancy of reporting
fetch-depth: 0
- name: Download code coverage reports
uses: actions/download-artifact@v4
- name: SonarCloud Scan
if: ${{ !github.event.pull_request.head.repo.fork }}
uses: SonarSource/sonarqube-scan-action@v4
Expand Down
125 changes: 119 additions & 6 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,124 @@
"email": "graphtooling@service.microsoft.com"
}
],
"require": {
"php": "^7.4 || ^8.0"
},
"repositories": [
{
"type": "path",
"url": "packages/abstractions",
"options": {
"symlink": false
}
},
{
"type": "path",
"url": "packages/authentication/phpleague",
"options": {
"symlink": false
}
},
{
"type": "path",
"url": "packages/bundle",
"options": {
"symlink": false
}
},
{
"type": "path",
"url": "packages/http/guzzle",
"options": {
"symlink": false
}
},
{
"type": "path",
"url": "packages/serialization/form",
"options": {
"symlink": false
}
},
{
"type": "path",
"url": "packages/serialization/json",
"options": {
"symlink": false
}
},
{
"type": "path",
"url": "packages/serialization/multipart",
"options": {
"symlink": false
}
},
{
"type": "path",
"url": "packages/serialization/text",
"options": {
"symlink": false
}
}
],
"require": {
"doctrine/annotations": "^1.13 || ^2.0",
"ext-json": "*",
"ext-openssl": "*",
"ext-zlib": "*",
"firebase/php-jwt": "^v6.0.0",
"guzzlehttp/guzzle": "^7.4.5",
"guzzlehttp/psr7": "^1.6 || ^2",
"league/oauth2-client": "^2.6.1",
"open-telemetry/sdk": "^1.0.0",
"php": "^7.4 || ^8.0",
"php-http/promise": "~1.2.0",
"psr/http-message": "^1.1 || ^2.0",
"ramsey/uuid": "^4.2.3",
"stduritemplate/stduritemplate": "^0.0.53 || ^0.0.54 || ^0.0.55 || ^0.0.56 || ^0.0.57 || ^0.0.59 || ^1.0.0 || ^2.0.0"
},
"require-dev": {
"symplify/monorepo-builder": "^11.2.22",
"phpunit/phpunit": "^9.6.22"
}
"phpstan/phpstan": "^1.12.16",
"phpunit/phpunit": "^9.6.22",
"roave/security-advisories": "dev-latest",
"symplify/monorepo-builder": "^11.2.22"
},
"replace": {
"microsoft/kiota-abstractions": "self.version",
"microsoft/kiota-authentication-phpleague": "self.version",
"microsoft/kiota-bundle": "self.version",
"microsoft/kiota-http-guzzle": "self.version",
"microsoft/kiota-serialization-form": "self.version",
"microsoft/kiota-serialization-json": "self.version",
"microsoft/kiota-serialization-multipart": "self.version",
"microsoft/kiota-serialization-text": "self.version"
},
"autoload": {
"psr-4": {
"Microsoft\\Kiota\\Abstractions\\": "packages/abstractions/src/",
"Microsoft\\Kiota\\Authentication\\": "packages/authentication/phpleague/src/",
"Microsoft\\Kiota\\Bundle\\": "packages/bundle/src/",
"Microsoft\\Kiota\\Http\\": "packages/http/guzzle/src/",
"Microsoft\\Kiota\\Serialization\\Form\\": "packages/serialization/form/src",
"Microsoft\\Kiota\\Serialization\\Json\\": "packages/serialization/json/src",
"Microsoft\\Kiota\\Serialization\\Multipart\\": "packages/serialization/multipart/src",
"Microsoft\\Kiota\\Serialization\\Text\\": "packages/serialization/text/src/"
}
},
"autoload-dev": {
"psr-4": {
"Microsoft\\Kiota\\Abstractions\\Tests\\": "packages/abstractions/tests/",
"Microsoft\\Kiota\\Authentication\\Test\\": "packages/authentication/phpleague/tests/",
"Microsoft\\Kiota\\Bundle\\Test\\": "packages/bundle/tests/",
"Microsoft\\Kiota\\Http\\Test\\": "packages/http/guzzle/tests/",
"Microsoft\\Kiota\\Serialization\\Form\\Tests\\": "packages/serialization/form/tests",
"Microsoft\\Kiota\\Serialization\\Json\\Tests\\": "packages/serialization/json/tests",
"Microsoft\\Kiota\\Serialization\\Multipart\\Tests\\": "packages/serialization/multipart/tests",
"Microsoft\\Kiota\\Serialization\\Text\\Tests\\": "packages/serialization/text/tests/"
}
},
"config": {
"allow-plugins": {
"php-http/discovery": false,
"tbachert/spi": false
}
}
}
13 changes: 12 additions & 1 deletion monorepo-builder.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
<?php

use Symplify\MonorepoBuilder\ComposerJsonManipulator\ValueObject\ComposerJsonSection;
use Symplify\MonorepoBuilder\ValueObject\Option;
use Symplify\MonorepoBuilder\Config\MBConfig;

require_once __DIR__ . '/vendor/autoload.php';

return static function (MBConfig $mbConfig): void {
// where are the packages located?
$mbConfig->packageDirectories([
__DIR__ . '/packages',
__DIR__ . '/packages/',
]);
$mbConfig->dataToRemove([
ComposerJsonSection::MINIMUM_STABILITY => Option::REMOVE_COMPLETELY,
ComposerJsonSection::REPOSITORIES => [
Option::REMOVE_COMPLETELY,
],
ComposerJsonSection::REPLACE => [
Option::REMOVE_COMPLETELY,
]
]);
};
44 changes: 0 additions & 44 deletions packages/bundle/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,50 +20,6 @@
"Microsoft\\Kiota\\Bundle\\Test\\": "tests/"
}
},
"repositories": [
{
"type": "path",
"url": "../abstractions",
"options": {
"symlink": false
}
},
{
"type": "path",
"url": "../http/guzzle",
"options": {
"symlink": false
}
},
{
"type": "path",
"url": "../serialization/json",
"options": {
"symlink": false
}
},
{
"type": "path",
"url": "../serialization/form",
"options": {
"symlink": false
}
},
{
"type": "path",
"url": "../serialization/multipart",
"options": {
"symlink": false
}
},
{
"type": "path",
"url": "../serialization/text",
"options": {
"symlink": false
}
}
],
"require": {
"php": "^7.4 || ^8.0",
"microsoft/kiota-abstractions": "^1.4.0",
Expand Down
9 changes: 0 additions & 9 deletions packages/http/guzzle/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,6 @@
"description": "Kiota HTTP Request Adapter implementation",
"version": "1.3.1",
"type": "library",
"repositories": [
{
"type": "path",
"url": "../../abstractions",
"options": {
"symlink": false
}
}
],
"require": {
"php": "^7.4 || ^8.0",
"guzzlehttp/guzzle": "^7.4.5",
Expand Down
11 changes: 1 addition & 10 deletions packages/serialization/form/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,18 +17,9 @@
},
"autoload-dev": {
"psr-4": {
"Microsoft\\Kiota\\Serialization\\Tests\\": "tests"
"Microsoft\\Kiota\\Serialization\\Form\\Tests\\": "tests"
}
},
"repositories": [
{
"type": "path",
"url": "../../abstractions",
"options": {
"symlink": false
}
}
],
"require": {
"microsoft/kiota-abstractions": "^1.4.0",
"guzzlehttp/psr7": "^1.6 || ^2",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Microsoft\Kiota\Serialization\Tests;
namespace Microsoft\Kiota\Serialization\Form\Tests;

use GuzzleHttp\Psr7\Utils;
use Microsoft\Kiota\Abstractions\Serialization\AdditionalDataHolder;
Expand Down
8 changes: 4 additions & 4 deletions packages/serialization/form/tests/FormParseNodeTest.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Microsoft\Kiota\Serialization\Tests;
namespace Microsoft\Kiota\Serialization\Form\Tests;

use DateTime;
use DateTimeInterface;
Expand All @@ -12,9 +12,9 @@
use Microsoft\Kiota\Abstractions\Types\Time;
use Microsoft\Kiota\Serialization\Form\FormParseNode;
use Microsoft\Kiota\Serialization\Form\FormParseNodeFactory;
use Microsoft\Kiota\Serialization\Tests\Samples\BioContentType;
use Microsoft\Kiota\Serialization\Tests\Samples\MaritalStatus;
use Microsoft\Kiota\Serialization\Tests\Samples\Person;
use Microsoft\Kiota\Serialization\Form\Tests\Samples\BioContentType;
use Microsoft\Kiota\Serialization\Form\Tests\Samples\MaritalStatus;
use Microsoft\Kiota\Serialization\Form\Tests\Samples\Person;
use PHPUnit\Framework\TestCase;
use Psr\Http\Message\StreamInterface;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Microsoft\Kiota\Serialization\Tests;
namespace Microsoft\Kiota\Serialization\Form\Tests;

use DateInterval;
use GuzzleHttp\Psr7\Utils;
Expand All @@ -9,9 +9,9 @@
use Microsoft\Kiota\Abstractions\Types\Date;
use Microsoft\Kiota\Abstractions\Types\Time;
use Microsoft\Kiota\Serialization\Form\FormSerializationWriter;
use Microsoft\Kiota\Serialization\Tests\Samples\Address;
use Microsoft\Kiota\Serialization\Tests\Samples\MaritalStatus;
use Microsoft\Kiota\Serialization\Tests\Samples\Person;
use Microsoft\Kiota\Serialization\Form\Tests\Samples\Address;
use Microsoft\Kiota\Serialization\Form\Tests\Samples\MaritalStatus;
use Microsoft\Kiota\Serialization\Form\Tests\Samples\Person;
use PHPUnit\Framework\TestCase;

class FormSerializationWriterTest extends TestCase
Expand Down
4 changes: 2 additions & 2 deletions packages/serialization/form/tests/Samples/Address.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?php

namespace Microsoft\Kiota\Serialization\Tests\Samples;
namespace Microsoft\Kiota\Serialization\Form\Tests\Samples;

use Microsoft\Kiota\Abstractions\Serialization\AdditionalDataHolder;
use Microsoft\Kiota\Abstractions\Serialization\Parsable;
Expand Down Expand Up @@ -80,4 +80,4 @@ public function setCity(?string $city): void {
}


}
}
Loading

0 comments on commit 673beef

Please sign in to comment.