build(deps): update botocore requirement from >=1.43.7 to >=1.43.8 in /python/cluster_management #1133
Workflow file for this run
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
| # Orchestrates all PR CI by detecting changed paths and conditionally invoking | |
| # per-language workflows. The "gate" job always runs and can be configured as | |
| # the single required status check in GitHub branch protection. | |
| name: CI Gate | |
| permissions: {} | |
| on: | |
| pull_request: | |
| workflow_dispatch: | |
| jobs: | |
| changes: | |
| runs-on: ubuntu-latest | |
| outputs: | |
| cpp-cm: ${{ steps.detect.outputs.cpp-cm }} | |
| cpp-libpq: ${{ steps.detect.outputs.cpp-libpq }} | |
| deno-booking-api: ${{ steps.detect.outputs.deno-booking-api }} | |
| deno-postgresjs: ${{ steps.detect.outputs.deno-postgresjs }} | |
| dotnet-cm: ${{ steps.detect.outputs.dotnet-cm }} | |
| dotnet-npgsql: ${{ steps.detect.outputs.dotnet-npgsql }} | |
| go-cm: ${{ steps.detect.outputs.go-cm }} | |
| go-pgx: ${{ steps.detect.outputs.go-pgx }} | |
| go-recipe-api: ${{ steps.detect.outputs.go-recipe-api }} | |
| java-cm: ${{ steps.detect.outputs.java-cm }} | |
| java-pgjdbc: ${{ steps.detect.outputs.java-pgjdbc }} | |
| java-spring-boot: ${{ steps.detect.outputs.java-spring-boot }} | |
| javascript-cm: ${{ steps.detect.outputs.javascript-cm }} | |
| javascript-node-postgres: ${{ steps.detect.outputs.javascript-node-postgres }} | |
| javascript-postgresjs: ${{ steps.detect.outputs.javascript-postgresjs }} | |
| lambda-nodejs: ${{ steps.detect.outputs.lambda-nodejs }} | |
| php-pdo-pgsql: ${{ steps.detect.outputs.php-pdo-pgsql }} | |
| python-asyncpg: ${{ steps.detect.outputs.python-asyncpg }} | |
| python-cm: ${{ steps.detect.outputs.python-cm }} | |
| python-psycopg2: ${{ steps.detect.outputs.python-psycopg2 }} | |
| python-psycopg3: ${{ steps.detect.outputs.python-psycopg3 }} | |
| ruby-cm: ${{ steps.detect.outputs.ruby-cm }} | |
| ruby-pg: ${{ steps.detect.outputs.ruby-pg }} | |
| ruby-rails: ${{ steps.detect.outputs.ruby-rails }} | |
| ruby-rails-carrental: ${{ steps.detect.outputs.ruby-rails-carrental }} | |
| rust-cm: ${{ steps.detect.outputs.rust-cm }} | |
| rust-sqlx: ${{ steps.detect.outputs.rust-sqlx }} | |
| typescript-prisma: ${{ steps.detect.outputs.typescript-prisma }} | |
| typescript-sequelize: ${{ steps.detect.outputs.typescript-sequelize }} | |
| typescript-type-orm: ${{ steps.detect.outputs.typescript-type-orm }} | |
| steps: | |
| - uses: actions/github-script@v8 | |
| id: detect | |
| with: | |
| script: | | |
| const config = { | |
| 'cpp-cm': ['cpp/cluster_management/'], | |
| 'cpp-libpq': ['cpp/libpq/'], | |
| 'deno-booking-api': ['deno/booking-api/postgres-js/'], | |
| 'deno-postgresjs': ['deno/postgres-js/'], | |
| 'dotnet-cm': ['dotnet/cluster_management/'], | |
| 'dotnet-npgsql': ['dotnet/npgsql/'], | |
| 'go-cm': ['go/cluster_management/'], | |
| 'go-pgx': ['go/dsql-pgx-connector/'], | |
| 'go-recipe-api': ['go/recipe-sharing-api/'], | |
| 'java-cm': ['java/cluster_management/'], | |
| 'java-pgjdbc': ['java/pgjdbc/'], | |
| 'java-spring-boot': ['java/spring_boot/'], | |
| 'javascript-cm': ['javascript/cluster_management/'], | |
| 'javascript-node-postgres': ['javascript/node-postgres/'], | |
| 'javascript-postgresjs': ['javascript/postgres-js/'], | |
| 'lambda-nodejs': ['lambda/'], | |
| 'php-pdo-pgsql': ['php/pdo-pgsql/'], | |
| 'python-asyncpg': ['python/asyncpg/'], | |
| 'python-cm': ['python/cluster_management/'], | |
| 'python-psycopg2': ['python/psycopg2/'], | |
| 'python-psycopg3': ['python/psycopg/'], | |
| 'ruby-cm': ['ruby/cluster_management/'], | |
| 'ruby-pg': ['ruby/ruby-pg/'], | |
| 'ruby-rails': ['ruby/rails/petclinic/'], | |
| 'ruby-rails-carrental': ['ruby/rails/carrental/'], | |
| 'rust-cm': ['rust/cluster_management/'], | |
| 'rust-sqlx': ['rust/sqlx/'], | |
| 'typescript-prisma': ['typescript/prisma-multi-region/'], | |
| 'typescript-sequelize': ['typescript/sequelize/'], | |
| 'typescript-type-orm': ['typescript/type-orm/'], | |
| }; | |
| const runAllPaths = [ | |
| '.github/workflows/ci-gate.yml', | |
| '.github/workflows/dsql-cluster-cleanup.yml', | |
| '.github/workflows/dsql-cluster-create.yml', | |
| '.github/workflows/dsql-cluster-delete.yml', | |
| ]; | |
| const pr = context.payload.pull_request; | |
| // Manual dispatch: run all CI | |
| if (!pr) { | |
| for (const name of Object.keys(config)) core.setOutput(name, 'true'); | |
| return; | |
| } | |
| let files = []; | |
| const paginator = github.paginate.iterator(github.rest.pulls.listFiles, { | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| pull_number: pr.number, | |
| per_page: 100, | |
| }); | |
| for await (const resp of paginator) { | |
| files.push(...resp.data.map(f => f.filename)); | |
| } | |
| // If API truncated results, run everything to be safe | |
| let runAll = files.length < pr.changed_files; | |
| if (!runAll) { | |
| runAll = files.some(f => runAllPaths.some(p => f === p || f.startsWith(p))); | |
| } | |
| for (const [name, paths] of Object.entries(config)) { | |
| const shouldRun = runAll || files.some(f => paths.some(p => f.startsWith(p))); | |
| core.setOutput(name, String(shouldRun)); | |
| } | |
| gitleaks: | |
| uses: ./.github/workflows/gitleaks-scan.yml | |
| secrets: inherit | |
| deps-review: | |
| uses: ./.github/workflows/deps-review.yml | |
| cpp-cm: | |
| needs: changes | |
| if: needs.changes.outputs.cpp-cm == 'true' | |
| uses: ./.github/workflows/cpp-cm-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| cpp-libpq: | |
| needs: changes | |
| if: needs.changes.outputs.cpp-libpq == 'true' | |
| uses: ./.github/workflows/cpp-libpq-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| deno-booking-api: | |
| needs: changes | |
| if: needs.changes.outputs.deno-booking-api == 'true' | |
| uses: ./.github/workflows/deno-booking-api-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| deno-postgresjs: | |
| needs: changes | |
| if: needs.changes.outputs.deno-postgresjs == 'true' | |
| uses: ./.github/workflows/deno-postgresjs-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| dotnet-cm: | |
| needs: changes | |
| if: needs.changes.outputs.dotnet-cm == 'true' | |
| uses: ./.github/workflows/dotnet-cm-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| dotnet-npgsql: | |
| needs: changes | |
| if: needs.changes.outputs.dotnet-npgsql == 'true' | |
| uses: ./.github/workflows/dotnet-npgsql-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| go-cm: | |
| needs: changes | |
| if: needs.changes.outputs.go-cm == 'true' | |
| uses: ./.github/workflows/go-cm-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| go-pgx: | |
| needs: changes | |
| if: needs.changes.outputs.go-pgx == 'true' | |
| uses: ./.github/workflows/go-pgx-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| go-recipe-api: | |
| needs: changes | |
| if: needs.changes.outputs.go-recipe-api == 'true' | |
| uses: ./.github/workflows/go-recipe-api-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| java-cm: | |
| needs: changes | |
| if: needs.changes.outputs.java-cm == 'true' | |
| uses: ./.github/workflows/java-cm-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| java-pgjdbc: | |
| needs: changes | |
| if: needs.changes.outputs.java-pgjdbc == 'true' | |
| uses: ./.github/workflows/java-pgjdbc-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| java-spring-boot: | |
| needs: changes | |
| if: needs.changes.outputs.java-spring-boot == 'true' | |
| uses: ./.github/workflows/java-spring-boot-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| javascript-cm: | |
| needs: changes | |
| if: needs.changes.outputs.javascript-cm == 'true' | |
| uses: ./.github/workflows/javascript-cm-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| javascript-node-postgres: | |
| needs: changes | |
| if: needs.changes.outputs.javascript-node-postgres == 'true' | |
| uses: ./.github/workflows/javascript-node-postgres-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| javascript-postgresjs: | |
| needs: changes | |
| if: needs.changes.outputs.javascript-postgresjs == 'true' | |
| uses: ./.github/workflows/javascript-postgresjs-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| lambda-nodejs: | |
| needs: changes | |
| if: needs.changes.outputs.lambda-nodejs == 'true' | |
| uses: ./.github/workflows/lambda-nodejs-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| python-asyncpg: | |
| needs: changes | |
| if: needs.changes.outputs.python-asyncpg == 'true' | |
| uses: ./.github/workflows/python-asyncpg-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| python-cm: | |
| needs: changes | |
| if: needs.changes.outputs.python-cm == 'true' | |
| uses: ./.github/workflows/python-cm-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| python-psycopg2: | |
| needs: changes | |
| if: needs.changes.outputs.python-psycopg2 == 'true' | |
| uses: ./.github/workflows/python-psycopg2-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| python-psycopg3: | |
| needs: changes | |
| if: needs.changes.outputs.python-psycopg3 == 'true' | |
| uses: ./.github/workflows/python-psycopg3-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| ruby-cm: | |
| needs: changes | |
| if: needs.changes.outputs.ruby-cm == 'true' | |
| uses: ./.github/workflows/ruby-cm-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| ruby-pg: | |
| needs: changes | |
| if: needs.changes.outputs.ruby-pg == 'true' | |
| uses: ./.github/workflows/ruby-pg-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| ruby-rails: | |
| needs: changes | |
| if: needs.changes.outputs.ruby-rails == 'true' | |
| uses: ./.github/workflows/ruby-rails-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| ruby-rails-carrental: | |
| needs: changes | |
| if: needs.changes.outputs.ruby-rails-carrental == 'true' | |
| uses: ./.github/workflows/ruby-rails-carrental-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| rust-cm: | |
| needs: changes | |
| if: needs.changes.outputs.rust-cm == 'true' | |
| uses: ./.github/workflows/rust-cm-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| rust-sqlx: | |
| needs: changes | |
| if: needs.changes.outputs.rust-sqlx == 'true' | |
| uses: ./.github/workflows/rust-sqlx-integ-test.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| typescript-prisma: | |
| needs: changes | |
| if: needs.changes.outputs.typescript-prisma == 'true' | |
| uses: ./.github/workflows/typescript-prisma-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| typescript-sequelize: | |
| needs: changes | |
| if: needs.changes.outputs.typescript-sequelize == 'true' | |
| uses: ./.github/workflows/typescript-sequelize-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| typescript-type-orm: | |
| needs: changes | |
| if: needs.changes.outputs.typescript-type-orm == 'true' | |
| uses: ./.github/workflows/typescript-type-orm-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| php-pdo-pgsql: | |
| needs: changes | |
| if: needs.changes.outputs.php-pdo-pgsql == 'true' | |
| uses: ./.github/workflows/php-pdo-pgsql-integ-tests.yml | |
| secrets: inherit | |
| permissions: | |
| id-token: write # required by aws-actions/configure-aws-credentials | |
| gate: | |
| name: gate | |
| runs-on: ubuntu-latest | |
| needs: | |
| - gitleaks | |
| - deps-review | |
| - cpp-cm | |
| - cpp-libpq | |
| - deno-booking-api | |
| - deno-postgresjs | |
| - dotnet-cm | |
| - dotnet-npgsql | |
| - go-cm | |
| - go-pgx | |
| - go-recipe-api | |
| - java-cm | |
| - java-pgjdbc | |
| - java-spring-boot | |
| - javascript-cm | |
| - javascript-node-postgres | |
| - javascript-postgresjs | |
| - lambda-nodejs | |
| - php-pdo-pgsql | |
| - python-asyncpg | |
| - python-cm | |
| - python-psycopg2 | |
| - python-psycopg3 | |
| - ruby-cm | |
| - ruby-pg | |
| - ruby-rails | |
| - ruby-rails-carrental | |
| - rust-cm | |
| - rust-sqlx | |
| - typescript-prisma | |
| - typescript-sequelize | |
| - typescript-type-orm | |
| if: always() | |
| steps: | |
| - uses: actions/github-script@v8 | |
| with: | |
| script: | | |
| const needs = ${{ toJSON(needs) }}; | |
| for (const [job, result] of Object.entries(needs)) { | |
| if (result.result === 'failure' || result.result === 'cancelled') { | |
| core.setFailed(`Job ${job} ${result.result}`); | |
| } | |
| } |