-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
14 changed files
with
509 additions
and
191 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
root = true | ||
|
||
[*] | ||
end_of_line = lf | ||
insert_final_newline = true | ||
charset = utf-8 | ||
indent_style = space | ||
indent_size = 4 | ||
|
||
[Makefile] | ||
indent_style = tab | ||
indent_size = 8 | ||
|
||
[{*.yml,*.yaml}] | ||
indent_style = space | ||
indent_size = 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
# Ignore all test and documentation for archive | ||
/.github export-ignore | ||
/.gitattributes export-ignore | ||
/.gitignore export-ignore | ||
/.scrutinizer.yml export-ignore | ||
/.travis.yml export-ignore | ||
/.editorconfig export-ignore | ||
/codecov.yml export-ignore | ||
/.remarkrc export-ignore | ||
/.remarkignore export-ignore | ||
/behat.yml export-ignore | ||
/phpunit.xml.dist export-ignore | ||
/phpcs.xml.dist export-ignore | ||
/CODE_OF_CONDUCT.md export-ignore | ||
/CONTRIBUTING.md export-ignore | ||
/Makefile export-ignore | ||
/tests export-ignore | ||
/features export-ignore | ||
/docs export-ignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
[*.yml] | ||
indent_style = space | ||
indent_size = 2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,251 @@ | ||
name: 'CI' | ||
on: # Build any PRs and main branch changes | ||
workflow_dispatch: # Allows to run the workflow manually from the Actions tab | ||
pull_request: | ||
types: | ||
- opened | ||
- edited | ||
- synchronize | ||
push: | ||
branches: [ master ] | ||
schedule: | ||
- cron: '0 0 1 * *' # Every month | ||
|
||
concurrency: | ||
group: "${{ github.workflow }}-${{ github.head_ref || github.ref }}" | ||
cancel-in-progress: true | ||
|
||
env: | ||
TEST_OUTPUT_STYLE: pretty | ||
COMPOSER_OPTIONS: --optimize-autoloader | ||
CODACY_CACHE_PATH: ~/.cache/codacy | ||
CODACY_BIN: ~/.cache/codacy/codacy.sh | ||
|
||
jobs: | ||
tests: | ||
name: UTs & FTs - Symfony ${{ matrix.symfony-version }} | ||
runs-on: ubuntu-latest | ||
env: | ||
COVERAGE_TYPE: none | ||
strategy: | ||
fail-fast: true | ||
max-parallel: 4 | ||
matrix: | ||
include: | ||
# Bare minimum => Lowest versions allowed by composer config | ||
- symfony-version: '4.4' | ||
php-version: '8.0' | ||
composer-flag: --prefer-lowest | ||
# Up to date versions => Latest versions allowed by composer config | ||
- symfony-version: '5.4' | ||
php-version: '8.2' | ||
# Late symfony migration => Lowest symfony version with latest minor php version allowed by composer config | ||
- symfony-version: '4.4' | ||
php-version: '8.2' | ||
composer-flag: --prefer-lowest | ||
# Late php migration => Latest symfony version with lowest minor php version allowed by composer config | ||
- symfony-version: '5.4' | ||
php-version: '8.0' | ||
# Symfony 6.0 latest | ||
- symfony-version: '6.0' | ||
php-version: '8.2' | ||
# Symfony 6.0 lowest | ||
- symfony-version: '6.0' | ||
php-version: '8.0' | ||
composer-flag: --prefer-lowest | ||
steps: | ||
- name: Check out code | ||
uses: actions/checkout@v3 | ||
|
||
- name: Enable coverage | ||
if: ${{ matrix.php-version == '8.2' }} | ||
run: | | ||
echo "COVERAGE_OUTPUT_STYLE=clover" >> $GITHUB_ENV | ||
echo "COVERAGE_TYPE=xdebug" >> $GITHUB_ENV | ||
- name: Setup PHP ${{ matrix.php-version }} | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: '${{ matrix.php-version }}' | ||
tools: composer | ||
coverage: ${{ env.COVERAGE_TYPE }} | ||
env: | ||
# Always use latest available patch for the version | ||
update: true | ||
|
||
- name: Setup cache | ||
id: cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.composer | ||
./vendor | ||
${{ env.CODACY_CACHE_PATH }} | ||
# Clear the cache if composer json (as composer.lock is in the repo) has been updated | ||
key: tests-${{ matrix.php-version }}-${{ matrix.symfony-version }}-${{ matrix.composer-flag }}-${{ hashFiles('composer.json') }} | ||
|
||
- name: Download codacy binary | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
mkdir -p ${{ env.CODACY_CACHE_PATH }} \ | ||
&& curl -LN https://coverage.codacy.com/get.sh -o ${{ env.CODACY_BIN }} \ | ||
&& chmod +x ${{ env.CODACY_BIN }} \ | ||
&& ${{ env.CODACY_BIN }} download | ||
- name: Build | ||
run: | | ||
SF_VERSION=${{ matrix.symfony-version }} | ||
# Issue with ParamterBag below 4.4.30 => https://github.com/symfony/symfony/commit/3eca446b21607ea1c7a865ece2dd8254c33679cc | ||
test '${{ matrix.symfony-version }}' = '4.4' && test '${{ matrix.php-version }}' = '8.2' && SF_VERSION=4.4.30 | ||
composer require -W ${{ env.COMPOSER_OPTIONS }} ${{ matrix.composer-flag }} \ | ||
symfony/validator:^$SF_VERSION \ | ||
&& composer update ${{ env.COMPOSER_OPTIONS }} ${{ matrix.composer-flag }} \ | ||
&& make build | ||
- name: Tests | ||
run: make test-unit && make test-functional | ||
|
||
# Upload to codacy first as codecov action always remove coverage files despite move_coverage_to_trash at false | ||
# And only if it's not a PR from a fork => Can't work as codacy secret is not accessible in that context | ||
- name: Upload coverages to Codacy | ||
if: ${{ (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'yoanm/php-jsonrpc-params-symfony-validator-sdk') && env.COVERAGE_TYPE == 'xdebug' }} | ||
run: ${{ env.CODACY_BIN }} report -r build/coverage-phpunit/unit.clover -r build/coverage-behat/clover.xml -r build/coverage-phpunit/functional.clover -t ${{ secrets.CODACY_PROJECT_TOKEN }} --partial | ||
|
||
# See the reports at https://codecov.io/gh/yoanm/php-jsonrpc-params-symfony-validator-sdk | ||
- name: Upload unit tests coverage to codecov | ||
if: ${{ env.COVERAGE_TYPE == 'xdebug' }} | ||
uses: codecov/codecov-action@v3 | ||
with: | ||
file: "build/coverage-phpunit/unit.clover" | ||
name: "unit-tests-${{ matrix.php-version }}-${{ matrix.symfony-version }}" | ||
flags: "unit-tests,php-${{ matrix.php-version }},sf-${{ matrix.symfony-version }}" | ||
fail_ci_if_error: true | ||
move_coverage_to_trash: false | ||
verbose: ${{ runner.debug == '1' }} | ||
|
||
- name: Upload functional tests coverage to codecov | ||
if: ${{ env.COVERAGE_TYPE == 'xdebug' }} | ||
uses: codecov/codecov-action@v3 | ||
with: | ||
files: "build/coverage-behat/clover.xml,build/coverage-phpunit/functional.clover" | ||
name: "functional-tests-${{ matrix.php-version }}-${{ matrix.symfony-version }}" | ||
flags: "functional-tests,php-${{ matrix.php-version }},sf-${{ matrix.symfony-version }}" | ||
fail_ci_if_error: true | ||
move_coverage_to_trash: false | ||
verbose: ${{ runner.debug == '1' }} | ||
|
||
static-checks: | ||
name: Static checks | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: Setup PHP 8.2 | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: 8.2 # Latest supported | ||
tools: composer | ||
coverage: none | ||
env: | ||
# Always use latest available patch for the version | ||
update: true | ||
|
||
- name: Setup cache | ||
id: cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.composer | ||
# Clear the cache if composer json (as composer.lock is in the repo) has been updated | ||
key: tests-${{ env.PHP_VERSION }}-${{ hashFiles('composer.json') }} | ||
|
||
- name: Build | ||
run: make build | ||
|
||
- name: ComposerRequireChecker | ||
uses: docker://webfactory/composer-require-checker:4.5.0 | ||
|
||
- name: Dependencies check | ||
if: ${{ github.event_name == 'pull_request' }} | ||
uses: actions/dependency-review-action@v1 | ||
|
||
finalize-codacy-coverage-report: | ||
runs-on: ubuntu-latest | ||
name: Finalize Codacy coverage report | ||
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == 'yoanm/php-jsonrpc-params-symfony-validator-sdk' }} | ||
needs: [ tests ] | ||
steps: | ||
- name: Setup cache | ||
id: cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
${{ env.CODACY_CACHE_PATH }} | ||
key: codacy-final | ||
|
||
- name: Download codacy binary | ||
if: steps.cache.outputs.cache-hit != 'true' | ||
run: | | ||
mkdir -p ${{ env.CODACY_CACHE_PATH }} \ | ||
&& curl -LN https://coverage.codacy.com/get.sh -o ${{ env.CODACY_BIN }} \ | ||
&& chmod +x ${{ env.CODACY_BIN }} \ | ||
&& ${{ env.CODACY_BIN }} download | ||
- name: Finalize reporting | ||
run: ${{ env.CODACY_BIN }} final -t ${{ secrets.CODACY_PROJECT_TOKEN }} | ||
|
||
nightly-tests: | ||
name: Nightly - Symfony ${{ matrix.symfony-version }} | ||
runs-on: ubuntu-latest | ||
env: | ||
COMPOSER_OPTIONS: '--optimize-autoloader --ignore-platform-req=php+' | ||
continue-on-error: true | ||
needs: [ static-checks, tests ] | ||
strategy: | ||
fail-fast: false | ||
max-parallel: 4 | ||
matrix: | ||
php-version: | ||
- '8.3' # Current php dev version | ||
symfony-version: | ||
- '4.4' # Lowest LTS | ||
- '5.4' # Latest LTS | ||
- '6.0' # Current major version | ||
include: | ||
- symfony-version: '6.3' # Next symfony minor version to manage with latest supported PHP version | ||
php-version: '8.2' | ||
|
||
steps: | ||
- name: Check out code | ||
uses: actions/checkout@v3 | ||
|
||
- name: Setup PHP ${{ matrix.php-version }} | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: '${{ matrix.php-version }}' | ||
tools: composer | ||
coverage: none | ||
env: | ||
# Always use latest available patch for the version | ||
update: true | ||
|
||
- name: Setup cache | ||
id: cache | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.composer | ||
./vendor | ||
# Clear the cache if composer json (as composer.lock is in the repo) has been updated | ||
key: tests-${{ matrix.php-version }}-${{ matrix.symfony-version }}-${{ hashFiles('composer.json') }} | ||
|
||
- name: Build | ||
run: | | ||
composer config minimum-stability dev \ | ||
&& composer require -W ${{ env.COMPOSER_OPTIONS }} \ | ||
symfony/validator:^${{ matrix.symfony-version }} \ | ||
&& composer update ${{ env.COMPOSER_OPTIONS }} \ | ||
&& make build | ||
- name: Test | ||
run: make test-unit && make test-functional |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
vendor |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
{ | ||
"plugins": [ | ||
"remark-preset-lint-consistent", | ||
"remark-preset-lint-recommended" | ||
] | ||
} |
Oops, something went wrong.