Skip to content

WIP: Add registry-watcher image and separate docker-compose services #7305

WIP: Add registry-watcher image and separate docker-compose services

WIP: Add registry-watcher image and separate docker-compose services #7305

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-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@v5
# We check that all github actions workflows have valid syntax
- name: Validate YAML file
uses: raven-actions/actionlint@v2
with:
files: .github/workflow/*
flags: "-ignore SC2086" # ignore some shellcheck errors
- name: install `just`
run: sudo snap install --edge --classic just
- uses: cargo-bins/cargo-binstall@main
- name: restore build & cargo cache
uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ env.RUST_CACHE_KEY }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Launch postgres
run: just ensure_db_and_s3_are_running
- name: install SQLX CLI
run: cargo binstall sqlx-cli
- name: run database migrations
run: cargo sqlx migrate run --database-url $DOCSRS_DATABASE_URL
- name: run sqlx prepare --check
run: just sqlx-prepare
- name: test reverse migrations
run: |
# --target 0 means "revert everything"
cargo sqlx migrate revert \
--database-url $DOCSRS_DATABASE_URL \
--target-version 0
- name: shut down test environment
if: ${{ always() }}
run: just compose-down-and-wipe
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- 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: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: run tests
run: just run-tests run-builder-tests
- name: shut down test environment
if: ${{ always() }}
run: just compose-down-and-wipe
GUI_test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: restore build & cargo cache
uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ env.RUST_CACHE_KEY }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: install `just`
run: sudo snap install --edge --classic just
- name: Run GUI tests
run: just run-gui-tests
- name: shut down test environment
if: ${{ always() }}
run: just compose-down-and-wipe
rslint:
name: rust linters
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- 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: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- run: just lint
eslint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: denoland/setup-deno@v2
- name: install `just`
run: sudo snap install --edge --classic just
- run: just lint-js