Change gui-tests script to run all steps inside docker containers #5588
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: | |
schedule: | |
- cron: "0 0 * * *" | |
env: | |
RUST_BACKTRACE: 1 | |
RUST_CACHE_KEY: rust-cache-20240229 | |
DOCSRS_PREFIX: ignored/cratesfyi-prefix | |
DOCSRS_DATABASE_URL: postgresql://cratesfyi:password@localhost:15432 | |
DOCSRS_LOG: docs_rs=debug,rustwide=info | |
AWS_ACCESS_KEY_ID: cratesfyi | |
AWS_SECRET_ACCESS_KEY: secret_key | |
S3_ENDPOINT: http://localhost:9000 | |
DOCSRS_INCLUDE_DEFAULT_TARGETS: false | |
DOCSRS_DOCKER_IMAGE: ghcr.io/rust-lang/crates-build-env/linux-micro | |
SENTRY_ENVIRONMENT: dev | |
jobs: | |
sqlx: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- id: install | |
run: | | |
rustup override set stable | |
rustup update stable | |
- name: install `just` | |
run: sudo snap install --edge --classic just | |
- name: restore build & cargo cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
prefix-key: ${{ env.RUST_CACHE_KEY }} | |
- name: Build | |
run: cargo build --workspace --locked | |
- name: Launch postgres | |
run: | | |
touch .docker.env | |
docker compose up --wait --wait-timeout 30 db | |
- name: run database migrations | |
run: cargo run -- database migrate | |
- name: install SQLX CLI | |
run: cargo install sqlx-cli --no-default-features --features postgres | |
- name: run sqlx prepare --check | |
run: just sqlx-check | |
- name: test reverse migrations | |
run: | | |
# --target 0 means "revert everything" | |
cargo sqlx migrate revert \ | |
--database-url $DOCSRS_DATABASE_URL \ | |
--target-version 0 | |
test: | |
env: | |
SQLX_OFFLINE: 1 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- id: install | |
run: | | |
rustup override set stable | |
rustup update stable | |
- name: restore build & cargo cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
prefix-key: ${{ env.RUST_CACHE_KEY }} | |
- name: Build | |
run: cargo build --workspace --locked | |
- name: Launch postgres and min.io | |
run: | | |
touch .docker.env | |
docker compose up --wait --wait-timeout 30 db s3 | |
- name: run workspace tests | |
run: | | |
cargo test --workspace --locked --no-fail-fast | |
- name: run slow tests | |
env: | |
DOCSRS_INCLUDE_DEFAULT_TARGETS: true | |
run: | | |
cargo test --locked -- --ignored --test-threads=1 | |
GUI_test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: restore build & cargo cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
prefix-key: ${{ env.RUST_CACHE_KEY }} | |
- name: Launch postgres and min.io | |
run: | | |
touch .docker.env | |
docker compose up --wait --wait-timeout 30 db s3 | |
- name: Run GUI tests | |
run: | | |
touch .docker.env | |
gui-tests/in-docker | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- id: install | |
run: | | |
rustup override set stable | |
rustup update stable | |
rustup component add rustfmt | |
- run: cargo fmt -- --check | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- id: install | |
run: | | |
rustup override set stable | |
rustup update stable | |
rustup component add clippy | |
- name: install `just` | |
run: sudo snap install --edge --classic just | |
- name: restore build & cargo cache | |
uses: Swatinem/rust-cache@v2 | |
with: | |
prefix-key: ${{ env.RUST_CACHE_KEY }} | |
- run: just lint |