Skip to content

fix rebuilds not queued when there are failed builds with rebuild prio in the queue #6266

fix rebuilds not queued when there are failed builds with rebuild prio in the queue

fix rebuilds not queued when there are failed builds with rebuild prio in the queue #6266

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-20240327
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: 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
- 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: |
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
- 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: 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 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
eslint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: install `just`
run: sudo snap install --edge --classic just
- run: npm install -g eslint@8
- run: just lint-js