diff --git a/.github/actions/ci-setup.yml b/.github/actions/ci-setup.yml new file mode 100644 index 00000000..077a55b2 --- /dev/null +++ b/.github/actions/ci-setup.yml @@ -0,0 +1,46 @@ +name: CI setup + +inputs: + install-deps: + type: boolean + required: true + default: true + php-version: + type: string + required: true + php-extensions: + type: string + required: true + extensions-cache-key: + type: string + required: true + +runs: + uses: composite + steps: + - name: Checkout code + uses: actions/checkout@v3 + - name: Setup cache environment + id: extcache + uses: shivammathur/cache-extensions@v1 + with: + php-version: ${{ inputs.php-version }} + extensions: ${{ inputs.extensions }} + key: ${{ inputs.extensions-cache-key }} + - name: Cache extensions + uses: actions/cache@v2 + with: + path: ${{ steps.extcache.outputs.dir }} + key: ${{ steps.extcache.outputs.key }} + restore-keys: ${{ steps.extcache.outputs.key }} + - name: Use PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ inputs.php-version }} + tools: composer + extensions: ${{ inputs.extensions }} + coverage: pcov + ini-values: pcov.directory=module + - name: Install dependencies + if: ${{ inputs.install-deps }} + run: composer install --no-interaction --prefer-dist diff --git a/.github/workflows/ci-mutation-tests.yml b/.github/workflows/ci-mutation-tests.yml index bc985f12..4f9acb2f 100644 --- a/.github/workflows/ci-mutation-tests.yml +++ b/.github/workflows/ci-mutation-tests.yml @@ -17,31 +17,12 @@ jobs: env: extensions: openswoole-4.11.1 steps: - - name: Checkout code - uses: actions/checkout@v3 - - name: Setup cache environment - id: extcache - uses: shivammathur/cache-extensions@v1 + - name: Setup + uses: './.github/actions/ci-setup.yml' with: php-version: ${{ matrix.php-version }} - extensions: ${{ env.extensions }} - key: mutation-tests-extensions-${{ matrix.php-version }}-${{ inputs.test-group }} - - name: Cache extensions - uses: actions/cache@v2 - with: - path: ${{ steps.extcache.outputs.dir }} - key: ${{ steps.extcache.outputs.key }} - restore-keys: ${{ steps.extcache.outputs.key }} - - name: Use PHP - uses: shivammathur/setup-php@v2 - with: - php-version: ${{ matrix.php-version }} - tools: composer - extensions: ${{ env.extensions }} - coverage: pcov - ini-values: pcov.directory=module - - name: Install dependencies - run: composer install --no-interaction --prefer-dist + php-extensions: ${{ env.extensions }} + extensions-cache-key: mutation-tests-extensions-${{ matrix.php-version }}-${{ inputs.test-group }} - uses: actions/download-artifact@v3 with: path: build