From 2da83e366ae66160c23923fe9e7d2962306d9f67 Mon Sep 17 00:00:00 2001 From: Martin Mitterhauser Date: Fri, 19 Apr 2024 11:57:38 +0200 Subject: [PATCH] add .github workflow --- .gitattributes | 1 + .github/workflows/main.yml | 73 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.gitattributes b/.gitattributes index 441a7cd1..47e0f7b2 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,6 +1,7 @@ tests/ export-ignore .gitattributes export-ignore .gitignore export-ignore +.github export-ignore composer.* export-ignore phpunit.* export-ignore phpstan.neon export-ignore diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 00000000..ab5601e0 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,73 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events + push: + pull_request: + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # Composer config validation + composer: + name: "Composer config validation" + runs-on: "ubuntu-latest" + steps: + - uses: "actions/checkout@v3" + - name: "Validate composer.json" + run: "composer validate --strict" + + # PHP syntax validation + php: + name: "PHP syntax validation" + runs-on: "ubuntu-latest" + strategy: + matrix: + php_version: [ 8.1, 8.2, 8.3 ] + steps: + - uses: "actions/checkout@v3" + - uses: "shivammathur/setup-php@v2" + with: + php-version: "${{ matrix.php_version }}" + + - name: "Check PHP syntax of package" + run: | + php -l src/ + php -l tests/ + + phpunit: + name: "PHPUnit tests" + runs-on: "ubuntu-latest" + strategy: + matrix: + php_version: [ 8.1, 8.2, 8.3 ] + steps: + - uses: "actions/checkout@v3" + - uses: "php-actions/composer@v6" + with: + php_version: "${{ matrix.php_version }}" + php_extensions: intl + - run: "vendor/bin/phpunit" + + # phpstan for several php versions + phpstan: + runs-on: "ubuntu-latest" + strategy: + matrix: + php_version: [ 8.1, 8.2, 8.3 ] + steps: + - uses: "actions/checkout@v3" + - uses: "php-actions/composer@v6" + with: + php_version: "${{ matrix.php_version }}" + php_extensions: intl + - name: "PHPStan Static Analysis" + uses: "php-actions/phpstan@v3" + with: + php_version: "${{ matrix.php_version }}" + configuration: "phpstan.neon"