diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..7fdaac8 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,46 @@ +name: PHPRETS CI + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + php_version: ["8.2"] + steps: + - uses: actions/checkout@v4 + - name: Setup PHP with composer v2 + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php_version }} + coverage: pcov + extensions: json, simplexml + tools: composer:v2 + - name: Validate composer.json and composer.lock + run: composer validate --strict + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v4 + with: + path: vendor + key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-php- + + - name: Install dependencies + run: composer install --prefer-dist --no-interaction --no-progress + + - name: Static analysis + run: composer run-script stan + + - name: Run test suite + run: composer run-script test diff --git a/composer.json b/composer.json index 9757879..a111371 100644 --- a/composer.json +++ b/composer.json @@ -52,5 +52,12 @@ "allow-plugins": { "dealerdirect/phpcodesniffer-composer-installer": true } + }, + "scripts": { + "stan": [ + "phpcs --warning-severity=0", + "phpstan" + ], + "test": "phpunit" } }