Update dependency guzzlehttp/guzzle to v7.15.3 (#5763) #3602
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| - push | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Register problem matchers | |
| run: echo "::add-matcher::.github/matchers.json" | |
| - name: Install libuuid | |
| run: sudo apt-get update && sudo apt-get install --assume-yes uuid-dev | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.5' | |
| extensions: bcmath, ctype, curl, fileinfo, gd, intl, json, ldap, mbstring, mysqli, openssl, pdo, redis, sqlite3, tokenizer, uuid, xml, zip | |
| coverage: none | |
| env: | |
| fail-fast: true | |
| GITHUB_TOKEN: ${{ github.token }} | |
| - name: Get Composer cache directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - name: Setup Composer cache | |
| uses: actions/cache@v6 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('composer.lock') }} | |
| restore-keys: ${{ runner.os }}-composer- | |
| - name: Install Composer dependencies | |
| env: | |
| COMPOSER_AUTH: >- | |
| {"github-oauth":{"github.com":"${{ github.token }}"},"http-basic":{"nova.laravel.com":{"username":"${{ secrets.LARAVEL_NOVA_USERNAME }}","password":"${{ secrets.LARAVEL_NOVA_PASSWORD }}"}}} | |
| run: composer install --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist | |
| - name: Run Pint | |
| run: vendor/bin/pint --test | |
| - name: Run PHPCS | |
| run: vendor/bin/phpcs . | |
| # - name: Run Phan | |
| # run: vendor/bin/phan --output-mode github --no-progress-bar --analyze-twice | |
| - name: Run Psalm | |
| run: vendor/bin/psalm --output-format=github --no-progress | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Install exiftool and libuuid | |
| run: sudo apt-get update && sudo apt-get install --assume-yes libimage-exiftool-perl uuid-dev | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: '8.5' | |
| extensions: bcmath, ctype, curl, fileinfo, gd, intl, json, ldap, mbstring, mysqli, openssl, pdo, redis, sqlite3, tokenizer, uuid, xml, zip | |
| coverage: none | |
| env: | |
| fail-fast: true | |
| GITHUB_TOKEN: ${{ github.token }} | |
| - name: Prepare the environment | |
| run: cp .env.example .env | |
| - name: Get composer cache directory | |
| id: composer-cache | |
| run: echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
| - name: Setup composer cache | |
| uses: actions/cache@v6 | |
| with: | |
| path: ${{ steps.composer-cache.outputs.dir }} | |
| key: ${{ runner.os }}-composer-${{ hashFiles('composer.lock') }} | |
| restore-keys: ${{ runner.os }}-composer- | |
| - name: Install composer dependencies | |
| env: | |
| COMPOSER_AUTH: >- | |
| {"github-oauth":{"github.com":"${{ github.token }}"},"http-basic":{"nova.laravel.com":{"username":"${{ secrets.LARAVEL_NOVA_USERNAME }}","password":"${{ secrets.LARAVEL_NOVA_PASSWORD }}"}}} | |
| run: composer install --no-ansi --no-interaction --no-scripts --no-progress --prefer-dist | |
| - name: Generate application key | |
| run: php artisan key:generate | |
| - name: Generate Passort keys | |
| run: php artisan passport:keys | |
| - name: Run tests | |
| run: php artisan test --stop-on-defect | |
| docker: | |
| name: Docker | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| steps: | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v4 | |
| - name: Log in to GHCR | |
| uses: docker/login-action@v4 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Write Composer auth file | |
| run: | | |
| echo '{"github-oauth":{"github.com":"${{ github.token }}"},"http-basic":{"nova.laravel.com":{"username":"${{ secrets.LARAVEL_NOVA_USERNAME }}","password":"${{ secrets.LARAVEL_NOVA_PASSWORD }}"}}}' > auth.json | |
| - name: Build and push | |
| id: build | |
| uses: docker/build-push-action@v7 | |
| with: | |
| tags: ghcr.io/robojackets/apiary:latest | |
| network: host | |
| pull: true | |
| push: true | |
| secret-files: composer_auth=./auth.json | |
| target: ${{ github.ref == 'refs/heads/main' && 'backend-compressed' || 'backend-uncompressed' }} | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| outputs: | |
| image-digest: ${{ steps.build.outputs.digest }} | |
| deploy-sandbox: | |
| name: Deploy | |
| needs: [lint, test, docker] | |
| uses: ./.github/workflows/deploy.yml | |
| concurrency: | |
| group: deploy-sandbox | |
| cancel-in-progress: true | |
| permissions: | |
| id-token: write | |
| contents: read | |
| with: | |
| image-digest: ${{ needs.docker.outputs.image-digest }} | |
| environment: sandbox | |
| precompressed-assets: ${{ github.ref == 'refs/heads/main' && true || false }} | |
| deploy-test: | |
| name: Deploy | |
| needs: [docker, deploy-sandbox] | |
| uses: ./.github/workflows/deploy.yml | |
| concurrency: | |
| group: deploy-test | |
| cancel-in-progress: true | |
| permissions: | |
| id-token: write | |
| contents: read | |
| with: | |
| image-digest: ${{ needs.docker.outputs.image-digest }} | |
| environment: test | |
| precompressed-assets: ${{ github.ref == 'refs/heads/main' && true || false }} | |
| deploy-production: | |
| name: Deploy | |
| needs: [docker, deploy-test] | |
| uses: ./.github/workflows/deploy.yml | |
| if: ${{ github.ref == 'refs/heads/main' }} | |
| concurrency: | |
| group: deploy-production | |
| cancel-in-progress: true | |
| permissions: | |
| id-token: write | |
| contents: read | |
| with: | |
| image-digest: ${{ needs.docker.outputs.image-digest }} | |
| environment: production | |
| precompressed-assets: true | |
| prune-stale-images: | |
| name: Prune stale images | |
| runs-on: ubuntu-latest | |
| needs: [docker, deploy-production] | |
| permissions: | |
| packages: write | |
| steps: | |
| - uses: snok/container-retention-policy@v3.1.0 | |
| with: | |
| account: robojackets | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| image-names: apiary | |
| skip-shas: ${{ needs.docker.outputs.image-digest }} | |
| cut-off: 0s |