99 - cron : " 0 0 * * *"
1010
1111env :
12- RUST_BACKTRACE : 1
1312 RUST_CACHE_KEY : rust-cache-20241114
14- DOCSRS_PREFIX : ignored/cratesfyi-prefix
15- DOCSRS_DATABASE_URL : postgresql://cratesfyi:password@localhost:15432
16- DOCSRS_LOG : docs_rs=debug,rustwide=info
17- AWS_ACCESS_KEY_ID : cratesfyi
18- AWS_SECRET_ACCESS_KEY : secret_key
19- S3_ENDPOINT : http://localhost:9000
20- DOCSRS_INCLUDE_DEFAULT_TARGETS : false
21- DOCSRS_DOCKER_IMAGE : ghcr.io/rust-lang/crates-build-env/linux-micro
22- SENTRY_ENVIRONMENT : dev
2313
2414jobs :
2515 sqlx :
2616 runs-on : ubuntu-latest
2717 steps :
2818 - uses : actions/checkout@v5
2919
30- # We check that all github actions workflows have valid syntax
31- - name : Validate YAML file
32- uses : raven-actions/actionlint@v2
33- with :
34- files : .github/workflow/*
35- flags : " -ignore SC2086" # ignore some shellcheck errors
36-
3720 - name : install `just`
3821 run : sudo snap install --edge --classic just
3922
23+ - uses : cargo-bins/cargo-binstall@main
24+
4025 - name : restore build & cargo cache
4126 uses : Swatinem/rust-cache@v2
4227 with :
4328 prefix-key : ${{ env.RUST_CACHE_KEY }}
4429
45- - name : Launch postgres
46- run : |
47- touch .docker.env
48- docker compose up --wait --wait-timeout 30 db
30+ - name : Set up Docker Buildx
31+ uses : docker/setup-buildx-action@v3
4932
5033 - name : install SQLX CLI
51- run : cargo install sqlx-cli --no-default-features --features postgres
52-
53- - name : run database migrations
54- run : cargo sqlx migrate run --database-url $DOCSRS_DATABASE_URL
34+ run : cargo binstall sqlx-cli
5535
56- - name : run sqlx prepare --check
57- run : just sqlx-prepare
58-
59- - name : test reverse migrations
36+ - name : run sqlx migration up & down
6037 run : |
61- # --target 0 means "revert everything"
62- cargo sqlx migrate revert \
63- --database-url $DOCSRS_DATABASE_URL \
64- --target-version 0
38+ just sqlx-migrate-run \
39+ sqlx-check \
40+ sqlx-migrate-revert
41+
42+ - name : shut down test environment
43+ if : ${{ always() }}
44+ run : just compose-down-and-wipe
6545
6646 test :
67- env :
68- SQLX_OFFLINE : 1
6947 runs-on : ubuntu-latest
7048 steps :
7149 - uses : actions/checkout@v5
7250
51+ - name : install `just`
52+ run : sudo snap install --edge --classic just
53+
7354 - name : restore build & cargo cache
7455 uses : Swatinem/rust-cache@v2
7556 with :
7657 prefix-key : ${{ env.RUST_CACHE_KEY }}
7758
78- - name : Build
79- run : cargo build --workspace --locked
80-
81- - name : Launch postgres and min.io
82- run : |
83- touch .docker.env
84- docker compose up --wait --wait-timeout 30 db s3
59+ - name : Set up Docker Buildx
60+ uses : docker/setup-buildx-action@v3
8561
86- - name : run workspace tests
87- run : |
88- cargo test --workspace --locked --no-fail-fast
62+ - name : run tests
63+ run : just run-tests run-builder-tests
8964
90- - name : run slow tests
91- env :
92- DOCSRS_INCLUDE_DEFAULT_TARGETS : true
93- run : |
94- cargo test --locked -- --ignored --test-threads=1
65+ - name : shut down test environment
66+ if : ${{ always() }}
67+ run : just compose-down-and-wipe
9568
9669 GUI_test :
9770 runs-on : ubuntu-latest
9871 steps :
9972 - uses : actions/checkout@v5
10073
101- - name : restore build & cargo cache
102- uses : Swatinem/rust-cache@v2
103- with :
104- prefix-key : ${{ env.RUST_CACHE_KEY }}
74+ - name : Set up Docker Buildx
75+ uses : docker/setup-buildx-action@v3
10576
106- - name : Launch postgres and min.io
107- run : |
108- touch .docker.env
109- docker compose up --wait --wait-timeout 30 db s3
77+ - name : install `just`
78+ run : sudo snap install --edge --classic just
11079
11180 - name : Run GUI tests
112- run : ./dockerfiles/run-gui-tests.sh
113-
114-
115- fmt :
116- name : Rustfmt
117- runs-on : ubuntu-latest
118-
119- steps :
120- - uses : actions/checkout@v5
121- - name : update rust toolchain
122- run : rustup component add rustfmt
81+ run : just run-gui-tests
12382
124- - run : cargo fmt -- --check
83+ - name : shut down test environment
84+ if : ${{ always() }}
85+ run : just compose-down-and-wipe
12586
126- clippy :
127- name : Clippy
87+ lint-rs :
88+ name : rust linters
12889 runs-on : ubuntu-latest
12990
13091 steps :
13192 - uses : actions/checkout@v5
13293
133- - name : update rust toolchain
134- run : rustup component add clippy
135-
13694 - name : install `just`
13795 run : sudo snap install --edge --classic just
13896
@@ -141,13 +99,33 @@ jobs:
14199 with :
142100 prefix-key : ${{ env.RUST_CACHE_KEY }}
143101
102+ - name : Set up Docker Buildx
103+ uses : docker/setup-buildx-action@v3
104+
144105 - run : just lint
145106
146- eslint :
107+ lint-js :
108+ name : js linters
147109 runs-on : ubuntu-latest
148110 steps :
149111 - uses : actions/checkout@v5
112+
150113 - uses : denoland/setup-deno@v2
114+
151115 - name : install `just`
152116 run : sudo snap install --edge --classic just
117+
153118 - run : just lint-js
119+
120+ lint-actions :
121+ name : gh actions linters
122+ runs-on : ubuntu-latest
123+ steps :
124+ - uses : actions/checkout@v5
125+
126+ # We check that all github actions workflows have valid syntax
127+ - name : Validate YAML file
128+ uses : raven-actions/actionlint@v2
129+ with :
130+ files : .github/workflow/*
131+ flags : " -ignore SC2086" # ignore some shellcheck errors
0 commit comments