Skip to content

Change gui-tests script to run all steps inside docker containers #5588

Change gui-tests script to run all steps inside docker containers

Change gui-tests script to run all steps inside docker containers #5588

Workflow file for this run

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