Skip to content

Postgres works

Postgres works #3002

Workflow file for this run

name: Postgres NDC tests
on:
push:
jobs:
test-unit:
strategy:
fail-fast: false
name: test unit
runs-on: ubuntu-latest
env:
CARGO_NET_GIT_FETCH_WITH_CLI: "true"
RUSTFLAGS: "-D warnings" # fail on warnings
steps:
- uses: actions/checkout@v4
- name: install tools
run: |
rustup show
# install cargo-nextest
curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
- uses: Swatinem/rust-cache@v2
with:
shared-key: "build" # share the cache across jobs
save-if: false
- name: run tests
run: |
cargo nextest run --no-fail-fast --release --filter-expr='not package(databases-tests)'
env:
RUST_LOG: INFO
test-connector:
strategy:
fail-fast: false
matrix:
package:
- ndc-postgres-12
- ndc-postgres-13
- ndc-postgres-14
- ndc-postgres-15
- ndc-postgres-16
name: test connector
runs-on: ubuntu-latest
env:
CARGO_NET_GIT_FETCH_WITH_CLI: "true"
RUSTFLAGS: "-D warnings" # fail on warnings
steps:
- uses: actions/checkout@v4
- name: install protoc
uses: arduino/setup-protoc@v3
with:
version: "25.x"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: install tools
run: |
rustup show
# install cargo-nextest
curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
- uses: Swatinem/rust-cache@v2
with:
shared-key: "build" # share the cache across jobs
save-if: false
- id: configuration
name: extract job configuration
run: |
echo "configuration=$(jq -c --arg package '${{ matrix.package }}' '.[$package]' .github/test-configuration.json)" >> "$GITHUB_OUTPUT"
- name: start dependencies
uses: hoverkraft-tech/[email protected]
with:
compose-file: "./docker-compose.yaml"
down-flags: "--volumes"
services: |
${{ fromJSON(steps.configuration.outputs.configuration).services }}
env:
POSTGRESQL_VERSION: ${{ fromJSON(steps.configuration.outputs.configuration).env.POSTGRESQL_VERSION }}
- name: run tests
run: |
cargo nextest run --no-fail-fast --release --features ${{ env.FEATURE_NAME }} --filter-expr='package(databases-tests) and (${{ env.FILTER }})'
env:
POSTGRESQL_CONNECTION_STRING: ${{ fromJSON(steps.configuration.outputs.configuration).env.POSTGRESQL_CONNECTION_STRING }}
FEATURE_NAME: ${{ fromJSON(steps.configuration.outputs.configuration).feature }}
FILTER: ${{ fromJSON(steps.configuration.outputs.configuration).filter || 'all()' }}
RUST_LOG: INFO
# scream into Slack if something goes wrong
- name: report status
if: always() && github.ref == 'refs/heads/main'
uses: ravsamhq/notify-slack-action@v2
with:
status: ${{ job.status }}
notify_when: failure
notification_title: "😧 Error on <{repo_url}|{repo}>"
message_format: "🐴 *{workflow}* {status_message} for <{repo_url}|{repo}>"
env:
SLACK_WEBHOOK_URL: ${{ secrets.BROKEN_BUILD_SLACK_WEBHOOK_URL }}
test-ndc-postgres-with-database:
strategy:
fail-fast: false
matrix:
database:
- postgres
- citus
- cockroach
- yugabyte
name: "test connector (ndc-postgres on ${{ matrix.database }})"
runs-on: ubuntu-latest
env:
CARGO_NET_GIT_FETCH_WITH_CLI: "true"
RUSTFLAGS: "-D warnings" # fail on warnings
steps:
- uses: actions/checkout@v4
- name: install protoc
uses: arduino/setup-protoc@v3
with:
version: "25.x"
repo-token: ${{ secrets.GITHUB_TOKEN }}
- name: install tools
run: |
rustup show
# install cargo-nextest
curl -LsSf https://get.nexte.st/latest/linux | tar zxf - -C ${CARGO_HOME:-~/.cargo}/bin
- uses: Swatinem/rust-cache@v2
with:
shared-key: "build" # share the cache across jobs
save-if: false
- name: start dependencies
uses: hoverkraft-tech/[email protected]
with:
compose-file: "./docker-compose.yaml"
down-flags: "--volumes"
services: |
${{ matrix.database }}
- name: run tests
run: |
cargo nextest run --no-fail-fast --release --features '${{ matrix.database }}' --filter-expr='package(databases-tests)'
env:
RUST_LOG: INFO