diff --git a/.github/workflows/ci-db-tests.yml b/.github/workflows/ci-db-tests.yml index a8fb3d15..09543610 100644 --- a/.github/workflows/ci-db-tests.yml +++ b/.github/workflows/ci-db-tests.yml @@ -16,39 +16,19 @@ jobs: php-version: [ '8.1' ] env: LC_ALL: C - extensions: openswoole-4.11.1, pdo_sqlsrv-5.10.1 steps: - - name: Checkout code - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - name: Install MSSQL ODBC if: ${{ inputs.platform == 'ms' }} run: sudo ./data/infra/ci/install-ms-odbc.sh - name: Start database server if: ${{ inputs.platform != 'sqlite:ci' }} run: docker-compose -f docker-compose.yml -f docker-compose.ci.yml up -d shlink_db_${{ inputs.platform }} - - name: Setup cache environment - id: extcache - uses: shivammathur/cache-extensions@v1 + - uses: './.github/actions/ci-setup' with: php-version: ${{ matrix.php-version }} - extensions: ${{ env.extensions }} - key: db-tests-extensions-${{ matrix.php-version }}-${{ inputs.platform }} - - 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: openswoole-4.11.1, pdo_sqlsrv-5.10.1 + extensions-cache-key: db-tests-extensions-${{ matrix.php-version }}-${{ inputs.platform }} - name: Create test database if: ${{ inputs.platform == 'ms' }} run: docker-compose exec -T shlink_db_ms /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'Passw0rd!' -Q "CREATE DATABASE shlink_test;" diff --git a/.github/workflows/ci-tests.yml b/.github/workflows/ci-tests.yml index 157ebbed..b7f7af98 100644 --- a/.github/workflows/ci-tests.yml +++ b/.github/workflows/ci-tests.yml @@ -14,40 +14,19 @@ jobs: strategy: matrix: php-version: ['8.1'] - env: - extensions: openswoole-4.11.1 steps: - - name: Checkout code - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - name: Start postgres database server if: ${{ inputs.test-group == 'api' }} run: docker-compose -f docker-compose.yml -f docker-compose.ci.yml up -d shlink_db_postgres - name: Start maria database server if: ${{ inputs.test-group == 'cli' }} run: docker-compose -f docker-compose.yml -f docker-compose.ci.yml up -d shlink_db_maria - - name: Setup cache environment - id: extcache - uses: shivammathur/cache-extensions@v1 + - uses: './.github/actions/ci-setup' with: php-version: ${{ matrix.php-version }} - extensions: ${{ env.extensions }} - key: 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: openswoole-4.11.1 + extensions-cache-key: tests-extensions-${{ matrix.php-version }}-${{ inputs.test-group }} - run: composer test:${{ inputs.test-group }}:ci - uses: actions/upload-artifact@v3 if: ${{ matrix.php-version == '8.1' }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eb2f3334..57985e8a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,33 +15,13 @@ jobs: matrix: php-version: ['8.1'] command: ['cs', 'stan', 'swagger:validate'] - 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 + - uses: actions/checkout@v3 + - uses: './.github/actions/ci-setup' with: php-version: ${{ matrix.php-version }} - extensions: ${{ env.extensions }} - key: tests-extensions-${{ matrix.php-version }}-${{ matrix.command }} - - 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: none - - name: Install dependencies - run: composer install --no-interaction --prefer-dist + php-extensions: openswoole-4.11.1 + extensions-cache-key: tests-extensions-${{ matrix.php-version }}-${{ matrix.command }} - run: composer ${{ matrix.command }} unit-tests: diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index af6c2e26..b4ed7bba 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -12,30 +12,14 @@ jobs: matrix: php-version: ['8.1'] swoole: ['yes', 'no'] - 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 + - uses: actions/checkout@v3 + - uses: './.github/actions/ci-setup' with: php-version: ${{ matrix.php-version }} - extensions: ${{ env.extensions }} - key: publish-release-extensions-${{ matrix.php-version }}-${{ matrix.swoole }} - - 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 }} + php-extensions: openswoole-4.11.1 + extensions-cache-key: publish-swagger-spec-extensions-${{ matrix.php-version }} + install-deps: 'no' - if: ${{ matrix.swoole == 'yes' }} run: ./build.sh ${GITHUB_REF#refs/tags/v} - if: ${{ matrix.swoole == 'no' }} @@ -49,8 +33,7 @@ jobs: needs: ['build'] runs-on: ubuntu-22.04 steps: - - name: Checkout code - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - uses: actions/download-artifact@v3 with: path: build diff --git a/.github/workflows/publish-swagger-spec.yml b/.github/workflows/publish-swagger-spec.yml index e0f9f2ee..9002353d 100644 --- a/.github/workflows/publish-swagger-spec.yml +++ b/.github/workflows/publish-swagger-spec.yml @@ -11,36 +11,17 @@ jobs: strategy: matrix: php-version: ['8.1'] - env: - extensions: openswoole-4.11.1 steps: - - name: Checkout code - uses: actions/checkout@v3 + - uses: actions/checkout@v3 - name: Determine version id: determine_version run: echo "::set-output name=version::${GITHUB_REF#refs/tags/}" shell: bash - - name: Setup cache environment - id: extcache - uses: shivammathur/cache-extensions@v1 + - uses: './.github/actions/ci-setup' with: php-version: ${{ matrix.php-version }} - extensions: ${{ env.extensions }} - key: publish-swagger-spec-extensions-${{ matrix.php-version }} - - 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: none - - run: composer install --no-interaction --prefer-dist + php-extensions: openswoole-4.11.1 + extensions-cache-key: publish-swagger-spec-extensions-${{ matrix.php-version }} - run: composer swagger:inline - run: mkdir ${{ steps.determine_version.outputs.version }} - run: mv docs/swagger/swagger-inlined.json ${{ steps.determine_version.outputs.version }}/open-api-spec.json