ci: upgrade npm before publish (OIDC needs npm >= 11.5.1) + checkout v7 #50
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
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| env: | |
| CARGO_TERM_COLOR: always | |
| DATABASE_URL: postgres://postgres:postgres@localhost:5432/beyond_queue | |
| SQLX_OFFLINE: "true" | |
| # Queue's pgrx hot-path overrides (queue.send/receive/etc) make `sqlx | |
| # prepare --check` depend on the extension being loaded — the | |
| # committed .sqlx cache encodes the C signatures. Every postgres job | |
| # therefore runs setup-pgrx + apply-sql-fixtures (schema → hot_paths → | |
| # load_pgrx_extension) before any sqlx code runs. | |
| jobs: | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: install postgres build deps for mise | |
| run: sudo apt-get install -y libreadline-dev uuid-dev | |
| - uses: ./.github/actions/setup-rust | |
| with: | |
| cache-key: lint | |
| - run: mise run check:fmt | |
| - run: mise run check:rs | |
| generate-check: | |
| name: generated files up-to-date | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: install postgres build deps for mise | |
| run: sudo apt-get install -y libreadline-dev uuid-dev | |
| - uses: ./.github/actions/setup-rust | |
| with: | |
| cache-key: gen | |
| - run: mise run generate:openapi | |
| - run: mise run generate:types | |
| - name: check no diff | |
| run: | | |
| git diff --exit-code -- \ | |
| openapi/v1.json \ | |
| sdk/ts/queue/src/types.ts \ | |
| sdk/ts/events/src/types.ts \ | |
| sdk/ts/cron/src/types.ts | |
| sqlx-check: | |
| name: sqlx offline cache up-to-date | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:18 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: beyond_queue | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready --health-interval 5s --health-timeout 5s --health-retries 5 | |
| env: | |
| SQLX_OFFLINE: "false" | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: install postgres build deps for mise | |
| run: sudo apt-get install -y libreadline-dev uuid-dev | |
| - uses: ./.github/actions/setup-rust | |
| with: | |
| cache-key: sqlx-check | |
| - uses: ./.github/actions/setup-pgrx | |
| with: | |
| extension-crate: beyond-queue-extension | |
| built-so-name: libbeyond_queue.so | |
| install-so-name: beyond_queue.so | |
| postgres-container-id: ${{ job.services.postgres.id }} | |
| - uses: ./.github/actions/apply-sql-fixtures | |
| with: | |
| postgres-container-id: ${{ job.services.postgres.id }} | |
| postgres-db: beyond_queue | |
| pre-sql: "CREATE SCHEMA IF NOT EXISTS queue;" | |
| fixtures: | | |
| beyond-queue-extension/sql/schema.sql | |
| tests/fixtures/hot_paths.sql | |
| tests/fixtures/load_pgrx_extension.sql | |
| - run: mise run check:sqlx | |
| rust-test: | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:18 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: beyond_queue | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready --health-interval 5s --health-timeout 5s --health-retries 5 | |
| env: | |
| SQLX_OFFLINE: "false" | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: install postgres build deps for mise | |
| run: sudo apt-get install -y libreadline-dev uuid-dev | |
| - uses: ./.github/actions/setup-rust | |
| with: | |
| cache-key: rust-test | |
| - uses: ./.github/actions/setup-pgrx | |
| with: | |
| extension-crate: beyond-queue-extension | |
| built-so-name: libbeyond_queue.so | |
| install-so-name: beyond_queue.so | |
| postgres-container-id: ${{ job.services.postgres.id }} | |
| - uses: ./.github/actions/apply-sql-fixtures | |
| with: | |
| postgres-container-id: ${{ job.services.postgres.id }} | |
| postgres-db: beyond_queue | |
| pre-sql: "CREATE SCHEMA IF NOT EXISTS queue;" | |
| fixtures: | | |
| beyond-queue-extension/sql/schema.sql | |
| tests/fixtures/hot_paths.sql | |
| tests/fixtures/load_pgrx_extension.sql | |
| - run: mise run test:unit:rs | |
| - run: mise run test:integration:rs | |
| handoff-test: | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:18 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: beyond_queue | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready --health-interval 5s --health-timeout 5s --health-retries 5 | |
| env: | |
| SQLX_OFFLINE: "false" | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: install postgres build deps for mise | |
| run: sudo apt-get install -y libreadline-dev uuid-dev | |
| - uses: ./.github/actions/setup-rust | |
| with: | |
| cache-key: handoff-test | |
| - uses: ./.github/actions/setup-pgrx | |
| with: | |
| extension-crate: beyond-queue-extension | |
| built-so-name: libbeyond_queue.so | |
| install-so-name: beyond_queue.so | |
| postgres-container-id: ${{ job.services.postgres.id }} | |
| - uses: ./.github/actions/apply-sql-fixtures | |
| with: | |
| postgres-container-id: ${{ job.services.postgres.id }} | |
| postgres-db: beyond_queue | |
| pre-sql: "CREATE SCHEMA IF NOT EXISTS queue;" | |
| fixtures: | | |
| beyond-queue-extension/sql/schema.sql | |
| tests/fixtures/hot_paths.sql | |
| tests/fixtures/load_pgrx_extension.sql | |
| - run: mise run test:handoff:rs | |
| ts-test: | |
| runs-on: ubuntu-latest | |
| services: | |
| postgres: | |
| image: postgres:18 | |
| env: | |
| POSTGRES_USER: postgres | |
| POSTGRES_PASSWORD: postgres | |
| POSTGRES_DB: beyond_queue | |
| ports: | |
| - 5432:5432 | |
| options: >- | |
| --health-cmd pg_isready --health-interval 5s --health-timeout 5s --health-retries 5 | |
| env: | |
| SQLX_OFFLINE: "false" | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: install postgres build deps for mise | |
| run: sudo apt-get install -y libreadline-dev uuid-dev | |
| - uses: ./.github/actions/setup-rust | |
| with: | |
| cache-key: ts-test | |
| - uses: ./.github/actions/setup-pgrx | |
| with: | |
| extension-crate: beyond-queue-extension | |
| built-so-name: libbeyond_queue.so | |
| install-so-name: beyond_queue.so | |
| postgres-container-id: ${{ job.services.postgres.id }} | |
| - uses: ./.github/actions/apply-sql-fixtures | |
| with: | |
| postgres-container-id: ${{ job.services.postgres.id }} | |
| postgres-db: beyond_queue | |
| pre-sql: "CREATE SCHEMA IF NOT EXISTS queue;" | |
| fixtures: | | |
| beyond-queue-extension/sql/schema.sql | |
| tests/fixtures/hot_paths.sql | |
| tests/fixtures/load_pgrx_extension.sql | |
| - run: mise run check:ts | |
| - run: mise run build:ts | |
| - run: mise run test:integration:ts |