run cargo update: #6564
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-20241114 | |
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 | |
- 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: Launch postgres | |
run: | | |
cp .env.sample .env | |
mkdir -p ${DOCSRS_PREFIX}/public-html | |
docker compose up -d db | |
# Give the database enough time to start up | |
sleep 5 | |
# Make sure the database is actually working | |
psql "${DOCSRS_DATABASE_URL}" | |
- name: install SQLX CLI | |
run: cargo install sqlx-cli --no-default-features --features postgres | |
- name: run database migrations | |
run: cargo sqlx migrate run --database-url $DOCSRS_DATABASE_URL | |
- 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 | |
- name: Clean up the database | |
run: docker compose down --volumes | |
test: | |
env: | |
SQLX_OFFLINE: 1 | |
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: Build | |
run: cargo build --workspace --locked | |
- name: Launch postgres and min.io | |
run: | | |
cp .env.sample .env | |
mkdir -p ${DOCSRS_PREFIX}/public-html | |
docker compose up -d db s3 | |
# Give the database enough time to start up | |
sleep 5 | |
# Make sure the database is actually working | |
psql "${DOCSRS_DATABASE_URL}" | |
- 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 | |
- name: Clean up the database | |
run: docker compose down --volumes | |
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: | | |
cp .env.sample .env | |
mkdir -p ${DOCSRS_PREFIX}/public-html | |
docker compose up -d db s3 | |
# Give the database enough time to start up | |
sleep 5 | |
# Make sure the database is actually working | |
psql "${DOCSRS_DATABASE_URL}" | |
- name: Run GUI tests | |
run: ./dockerfiles/run-gui-tests.sh | |
- name: Clean up the database | |
run: docker compose down --volumes | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- id: install | |
run: rustup component add rustfmt | |
- run: cargo fmt -- --check | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- id: install | |
run: 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 | |
eslint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: denoland/setup-deno@v2 | |
- name: install `just` | |
run: sudo snap install --edge --classic just | |
- run: just lint-js |