Merge pull request #18 from alanbem/fix-ci #141
This file contains hidden or 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
| name: CI | |
| on: [push] | |
| jobs: | |
| validate-composer: | |
| name: composer validate | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Compose | |
| uses: docker/setup-compose-action@v1 | |
| - name: Docker pull | |
| run: docker compose pull php | |
| - name: Start PHP container | |
| run: docker compose up --detach --build --no-deps php | |
| - name: Run composer validate | |
| run: docker compose run --rm --no-deps php composer validate --strict --no-interaction --ansi | |
| run-php-cs-fixer: | |
| name: php-cs-fixer | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Compose | |
| uses: docker/setup-compose-action@v1 | |
| - name: Docker pull | |
| run: docker compose pull php | |
| - name: Composer caching | |
| uses: actions/cache@v4 | |
| with: | |
| path: ./build/.composer | |
| key: ${{ runner.os }}-composer-v2-${{ hashFiles('composer.lock') }} | |
| restore-keys: ${{ runner.os }}-composer-v2- | |
| - name: Install dependencies | |
| run: docker compose run --rm --no-deps php composer install --no-scripts --no-interaction --ansi | |
| - name: Run php-cs-fixer | |
| run: docker compose run --rm --no-deps php bin/php-cs-fixer fix --diff --dry-run --ansi --config=.php-cs-fixer.dist.php | |
| run-phpunit: | |
| name: phpunit | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Compose | |
| uses: docker/setup-compose-action@v1 | |
| - name: Docker pull | |
| run: docker compose pull | |
| - name: Composer caching | |
| uses: actions/cache@v4 | |
| with: | |
| path: ./build/.composer | |
| key: ${{ runner.os }}-composer-v2-${{ hashFiles('composer.lock') }} | |
| restore-keys: ${{ runner.os }}-composer-v2- | |
| - name: Start containers | |
| run: docker compose up --detach --build | |
| - name: Install dependencies | |
| run: docker compose run --rm --no-deps php composer install --no-scripts --no-interaction --ansi | |
| - name: Run phpunit | |
| run: docker compose run --rm --no-deps php xphp -dxdebug.mode=coverage bin/phpunit --color=always --configuration=phpunit.xml.dist | |
| - name: Upload coverage report to codecov.io | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| files: ./build/.phpunit/clover.xml | |
| fail_ci_if_error: true | |
| verbose: true | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| - name: Archive code coverage results | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: PHPUnit Code Coverage | |
| path: ./build/.phpunit/code-coverage | |
| retention-days: 7 | |
| run-rector: | |
| name: rector | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Compose | |
| uses: docker/setup-compose-action@v1 | |
| - name: Docker pull | |
| run: docker compose pull php | |
| - name: Composer caching | |
| uses: actions/cache@v4 | |
| with: | |
| path: ./build/.composer | |
| key: ${{ runner.os }}-composer-v2-${{ hashFiles('composer.lock') }} | |
| restore-keys: ${{ runner.os }}-composer-v2- | |
| - name: Start PHP container | |
| run: docker compose up --detach --build --no-deps php | |
| - name: Install dependencies | |
| run: docker compose run --rm --no-deps php composer install --no-interaction --ansi | |
| - name: Run rector | |
| run: docker compose run --rm --no-deps php bin/rector --no-progress-bar --dry-run --ansi | |
| run-deptrac: | |
| name: deptrac | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Compose | |
| uses: docker/setup-compose-action@v1 | |
| - name: Docker pull | |
| run: docker compose pull php | |
| - name: Composer caching | |
| uses: actions/cache@v4 | |
| with: | |
| path: ./build/.composer | |
| key: ${{ runner.os }}-composer-v2-${{ hashFiles('composer.lock') }} | |
| restore-keys: ${{ runner.os }}-composer-v2- | |
| - name: Start PHP container | |
| run: docker compose up --detach --build --no-deps php | |
| - name: Install dependencies | |
| run: docker compose run --rm --no-deps php composer install --no-scripts --no-interaction --ansi | |
| - name: Run deptrac | |
| run: docker compose run --rm --no-deps php bin/deptrac --no-progress --no-interaction --cache-file=./build/.deptrac/.deptrac.cache --ansi |