yijia-webman/vendor/maennchen/zipstream-php/.github/workflows/part_test.yml

184 lines
6.3 KiB
YAML

on:
workflow_call:
name: "Test"
permissions:
contents: read
jobs:
phpunit:
name: PHPUnit (PHP ${{ matrix.php }} on ${{ matrix.os }})
runs-on: ${{ matrix.os }}
continue-on-error: ${{ matrix.experimental }}
strategy:
fail-fast: false
matrix:
php: ["8.1", "8.2", "8.3"]
os: [ubuntu-latest]
experimental: [false]
include:
- php: nightly
os: ubuntu-latest
experimental: true
- php: "8.3"
os: windows-latest
experimental: false
- php: "8.3"
os: macos-latest
experimental: false
steps:
- name: Harden Runner
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
- name: Checkout Code
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- name: SetUp PHP
id: setup-php
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
php-version: "${{ matrix.php }}"
tools: phpunit
coverage: xdebug
extensions: xdebug,zip
- name: Get composer cache directory
id: composer-cache-common
if: "${{ runner.os != 'Windows' }}"
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Get composer cache directory
id: composer-cache-windows
if: "${{ runner.os == 'Windows' }}"
run: echo "dir=$(composer config cache-files-dir)" >> $env:GITHUB_OUTPUT
- name: Cache Deps
uses: actions/cache@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4.1.1
id: cache
with:
path: ${{ steps.composer-cache-common.outputs.dir }}${{ steps.composer-cache-windows.outputs.dir }}
key: deps-${{ runner.os }}-${{ steps.setup-php.outputs.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
deps-${{ runner.os }}-${{ steps.setup-php.outputs.php-version }}-composer-
deps-${{ runner.os }}-${{ steps.setup-php.outputs.php-version }}-
deps-${{ steps.setup-php.outputs.php-version }}-
deps-
- name: Install Deps
if: matrix.php != 'nightly'
run: composer install --prefer-dist
- name: Install Deps (ignore PHP requirement)
if: matrix.php == 'nightly'
run: composer install --prefer-dist --ignore-platform-req=php+
- name: Run PHPUnit
run: composer run test:unit
env:
XDEBUG_MODE: coverage
- name: Upload coverage results to Coveralls
env:
COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
COVERALLS_PARALLEL: true
COVERALLS_FLAG_NAME: ${{ runner.os }}-${{ steps.setup-php.outputs.php-version }}
run: composer run coverage:report
continue-on-error: ${{ matrix.experimental }}
mark_coverage_done:
needs: ["phpunit"]
runs-on: ubuntu-latest
steps:
- name: Harden Runner
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
- name: Coveralls Finished
uses: coverallsapp/github-action@643bc377ffa44ace6394b2b5d0d3950076de9f63 # v2.3.0
with:
github-token: ${{ secrets.github_token }}
parallel-finished: true
psalm:
name: Run Psalm
runs-on: "ubuntu-latest"
permissions:
security-events: write
steps:
- name: Harden Runner
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
- name: Checkout Code
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- name: SetUp PHP
id: setup-php
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
php-version: "8.3"
- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache Deps
uses: actions/cache@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4.1.1
id: cache
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: deps-${{ runner.os }}-${{ steps.setup-php.outputs.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
deps-${{ runner.os }}-${{ steps.setup-php.outputs.php-version }}-composer-
deps-${{ runner.os }}-${{ steps.setup-php.outputs.php-version }}-
deps-${{ steps.setup-php.outputs.php-version }}-
deps-
- name: Install Deps
run: composer install --prefer-dist
- name: Run Psalm
run: composer run test:lint -- --report=results.sarif
- name: "Upload SARIF"
uses: github/codeql-action/upload-sarif@c36620d31ac7c881962c3d9dd939c40ec9434f2b # v3
with:
sarif_file: results.sarif
php-cs:
name: Run PHP-CS
runs-on: "ubuntu-latest"
steps:
- name: Harden Runner
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
- name: Checkout Code
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- name: SetUp PHP
id: setup-php
uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2
with:
php-version: "8.3"
- name: Get composer cache directory
id: composer-cache
run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Cache Deps
uses: actions/cache@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4.1.1
id: cache
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: deps-${{ runner.os }}-${{ steps.setup-php.outputs.php-version }}-composer-${{ hashFiles('**/composer.lock') }}
restore-keys: |
deps-${{ runner.os }}-${{ steps.setup-php.outputs.php-version }}-composer-
deps-${{ runner.os }}-${{ steps.setup-php.outputs.php-version }}-
deps-${{ steps.setup-php.outputs.php-version }}-
deps-
- name: Install Deps
run: composer install --prefer-dist
- name: Run PHP-CS
run: composer run test:formatted