Async client for use with Python's asynchronous I/O + examples #54
Workflow file for this run
This file contains 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: | |
- master | |
pull_request: | |
env: | |
# Database to connect to that can create other databases with `CREATE DATABASE`. | |
ADMIN_DATABASE_URL: postgres://postgres:postgres@localhost:5432 | |
# A suitable name/URL for non-test database. | |
DATABASE_NAME: river_dev | |
DATABASE_URL: postgres://postgres:postgres@127.0.0.1:5432/river_dev | |
# Test database. | |
TEST_DATABASE_NAME: river_test | |
TEST_DATABASE_URL: postgres://postgres:postgres@127.0.0.1:5432/river_test | |
jobs: | |
build_and_test: | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres:latest | |
env: | |
POSTGRES_PASSWORD: postgres | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 2s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 5432:5432 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Rye | |
uses: eifinger/setup-rye@v3 | |
# Needed for River's CLI. There is a version of Go on Actions' base image, | |
# but it's old and can't read modern `go.mod` annotations correctly. | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "stable" | |
check-latest: true | |
- name: Rye sync | |
run: rye sync | |
- name: Format check | |
run: rye fmt --check | |
- name: Lint | |
run: rye lint | |
- name: Type check | |
run: make type-check | |
- name: Build | |
run: rye build | |
- name: Install River CLI | |
run: go install github.com/riverqueue/river/cmd/river@latest | |
- name: Create database | |
run: psql --echo-errors --quiet -c '\timing off' -c "CREATE DATABASE ${TEST_DATABASE_NAME};" ${ADMIN_DATABASE_URL} | |
- name: river migrate-up | |
run: river migrate-up --database-url "$TEST_DATABASE_URL" | |
- name: Test | |
run: rye test | |
examples_run: | |
runs-on: ubuntu-latest | |
services: | |
postgres: | |
image: postgres:latest | |
env: | |
POSTGRES_PASSWORD: postgres | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 2s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 5432:5432 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install Rye | |
uses: eifinger/setup-rye@v3 | |
# Needed for River's CLI. There is a version of Go on Actions' base image, | |
# but it's old and can't read modern `go.mod` annotations correctly. | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: "stable" | |
check-latest: true | |
- name: Rye sync | |
run: rye sync | |
- name: Install River CLI | |
run: go install github.com/riverqueue/river/cmd/river@latest | |
- name: Create database | |
run: psql --echo-errors --quiet -c '\timing off' -c "CREATE DATABASE ${DATABASE_NAME};" ${ADMIN_DATABASE_URL} | |
- name: river migrate-up | |
run: river migrate-up --database-url "$DATABASE_URL" | |
- name: Run examples | |
run: rye run python3 -m examples.all |