1.5 KiB · text History 71c2437
name: checks
# A pull request's build and tests: the workspace compiled with the
# Dockerfile's toolchain, and its unit tests and tests/jobs_upsert.rs
# run. Every pull request — the security update PRs gg-security opens
# (dependency-updates.yml) most of all, since a bump that resolves isn't
# one that builds.
#
# tests/search_integration.rs is left out: it still uses i64 ids from
# before the UUIDv7 migration and doesn't compile. Once it does, test
# the whole workspace here with a postgres:17 service and
# DMS_TEST_DATABASE_URL pointing at it, as gitgud's checks.yml does.
on:
  pull_request:
  workflow_dispatch:

permissions:
  contents: read

jobs:
  test:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v4

      # As the Dockerfile's rust-builder stage.
      - name: Build dependencies
        run: |
          sudo apt-get update -q
          sudo apt-get install -y -q --no-install-recommends \
            build-essential pkg-config libssl-dev ca-certificates

      # rustup directly, at the Dockerfile's rust:1.92: setup actions
      # choose a build by ImageOS, which this runner sets to "selfhosted"
      # over anything a workflow says.
      - name: Rust
        run: |
          curl -sSf https://sh.rustup.rs | sh -s -- -y --profile minimal --default-toolchain 1.92.0
          echo "$HOME/.cargo/bin" >> "$GITHUB_PATH"

      - name: Build
        run: cargo build --locked --workspace

      - name: Test
        run: cargo test --locked --workspace --lib --bins --test jobs_upsert