Skip to content

ci: upgrade npm before publish (OIDC needs npm >= 11.5.1) + checkout v7 #50

ci: upgrade npm before publish (OIDC needs npm >= 11.5.1) + checkout v7

ci: upgrade npm before publish (OIDC needs npm >= 11.5.1) + checkout v7 #50

Workflow file for this run

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