Skip to content

refactor(store): wrap session projection in a single transaction (WriteSession) #81

refactor(store): wrap session projection in a single transaction (WriteSession)

refactor(store): wrap session projection in a single transaction (WriteSession) #81

Workflow file for this run

name: CI
on:
pull_request:
branches: [master]
permissions:
contents: read
jobs:
quality:
name: commit + docs + secrets
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install devbox
uses: jetify-com/devbox-install-action@v0.15.0
with:
enable-cache: true
- name: Install Node tooling
run: devbox run -- pnpm install --frozen-lockfile
- name: Lint commit messages
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: devbox run -- pnpm exec commitlint --config commitlint.config.cjs --from "$BASE_SHA" --to "$HEAD_SHA"
- name: Run quality gates
run: devbox run -- just quality
test:
name: tidy + gen + vet + test
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16-alpine
env:
POSTGRES_USER: prosa
POSTGRES_PASSWORD: prosa
POSTGRES_DB: prosa
ports:
- 5432:5432
options: >-
--health-cmd "pg_isready -U prosa"
--health-interval 5s
--health-timeout 5s
--health-retries 10
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install devbox
uses: jetify-com/devbox-install-action@v0.15.0
with:
enable-cache: true
- name: Cache Go modules and build
uses: actions/cache@v5
with:
path: |
~/go/pkg/mod
~/.cache/go-build
key: ubuntu-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
ubuntu-go-
- name: Tidy check
run: devbox run -- just tidy-check
- name: Generated code check
run: devbox run -- just gen-check
- name: Vet
run: devbox run -- just vet
- name: Test
env:
PROSA_TEST_PG_URL: postgres://prosa:prosa@localhost:5432/prosa?sslmode=disable
run: devbox run -- go test -race -count=1 -coverprofile=coverage.out ./...
- name: CLI integration test
run: devbox run -- just test-integration
- name: Upload coverage
if: always()
uses: actions/upload-artifact@v7
with:
name: coverage
path: coverage.out
retention-days: 7
lint:
name: golangci-lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install devbox
uses: jetify-com/devbox-install-action@v0.15.0
with:
enable-cache: true
- name: Run golangci-lint
run: devbox run -- just lint
build:
name: build / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Install devbox
uses: jetify-com/devbox-install-action@v0.15.0
with:
enable-cache: true
- name: Cache Go modules and build
uses: actions/cache@v5
with:
path: |
~/go/pkg/mod
~/.cache/go-build
~/Library/Caches/go-build
key: ${{ matrix.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ matrix.os }}-go-
- name: Build
run: devbox run -- just build