Skip to content

Commit f9cb457

Browse files
committed
feat: improve ci
1 parent dd3f66e commit f9cb457

File tree

2 files changed

+180
-33
lines changed

2 files changed

+180
-33
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: Free Disk Space
2+
description: Free up disk space on the runner
3+
runs:
4+
using: composite
5+
steps:
6+
- name: Free Disk Space (Ubuntu)
7+
if: runner.os == 'Linux'
8+
uses: jlumbroso/free-disk-space@main
9+
with:
10+
# We need to reclaim some space, but uninstalling everyting takes
11+
# too long. So we'll just remove some of the larger packages.
12+
# https://github.com/jlumbroso/free-disk-space/pull/26
13+
android: true
14+
dotnet: true
15+
haskell: true
16+
large-packages: false

.github/workflows/ci.yml

Lines changed: 164 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,55 +3,186 @@ name: CI
33
on:
44
workflow_dispatch:
55
pull_request:
6+
# paths: # Only run when changes are made to rust code or root Cargo
7+
# - "crates/**"
8+
# - "fuzz/**"
9+
# - "xtask/**"
10+
# - "Cargo.toml"
11+
# - "Cargo.lock"
12+
# - "rust-toolchain.toml"
13+
# - "rustfmt.toml"
614

715
concurrency:
816
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
917
cancel-in-progress: true
1018

1119
env:
1220
RUSTFLAGS: --deny warnings
21+
RUST_LOG: info
22+
RUST_BACKTRACE: 1
23+
RUSTUP_WINDOWS_PATH_ADD_BIN: 1
1324

1425
jobs:
15-
ci:
16-
name: CI
17-
timeout-minutes: 10
26+
format:
27+
name: Format
1828
runs-on: ubuntu-latest
29+
steps:
30+
- name: Checkout PR branch
31+
uses: actions/checkout@v4
32+
- name: Free Disk Space
33+
uses: ./.github/actions/free-disk-space
34+
- name: Install toolchain
35+
uses: moonrepo/setup-rust@v1
36+
with:
37+
components: rustfmt
38+
bins: taplo-cli
39+
cache-base: main
40+
env:
41+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
42+
- name: Run format
43+
run: |
44+
cargo fmt --all --check
45+
taplo format --check
1946
20-
services:
21-
postgres:
22-
image: postgres:latest
47+
lint:
48+
name: Lint
49+
runs-on: ubuntu-latest
50+
steps:
51+
- name: Checkout PR Branch
52+
uses: actions/checkout@v4
53+
- name: Free Disk Space
54+
uses: ./.github/actions/free-disk-space
55+
- name: Install toolchain
56+
uses: moonrepo/setup-rust@v1
57+
with:
58+
components: clippy
59+
cache-base: main
2360
env:
24-
POSTGRES_USER: postgres
25-
POSTGRES_PASSWORD: postgres
26-
POSTGRES_DB: postgres
27-
ports:
28-
- 5432:5432
61+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
62+
- name: Run clippy
63+
run: |
64+
cargo lint
65+
cargo run -p rules_check
2966
30-
env:
31-
DATABASE_URL: postgresql://postgres:postgres@localhost:5432/postgres
67+
check-dependencies:
68+
name: Check Dependencies
69+
runs-on: ubuntu-latest
70+
steps:
71+
- name: Checkout PR Branch
72+
uses: actions/checkout@v4
73+
- name: Free Disk Space
74+
uses: ./.github/actions/free-disk-space
75+
- name: Install toolchain
76+
run: rustup toolchain install nightly
77+
- name: Install udeps
78+
run: cargo install cargo-udeps --locked
79+
- name: Detect unused dependencies using udeps
80+
run: cargo +nightly udeps --all-targets
3281

82+
test:
83+
name: Test
84+
runs-on: ${{ matrix.os }}
85+
strategy:
86+
matrix:
87+
include:
88+
- os: windows-latest
89+
- os: ubuntu-latest
3390
steps:
34-
- name: 🏗 Setup repository
35-
uses: actions/checkout@v3
91+
- name: Checkout PR branch
92+
uses: actions/checkout@v4
93+
- name: Free Disk Space
94+
uses: ./.github/actions/free-disk-space
95+
- name: Install toolchain
96+
uses: moonrepo/setup-rust@v1
3697
with:
37-
submodules: true
98+
cache-base: main
99+
env:
100+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
101+
- name: Run tests
102+
run: cargo test --workspace
38103

39-
- name: 🏗 Setup monorepo
40-
uses: ./.github/actions/setup-monorepo
104+
codegen:
105+
name: Codegen
106+
runs-on: ubuntu-latest
107+
steps:
108+
- name: Checkout PR branch
109+
uses: actions/checkout@v4
110+
- name: Free Disk Space
111+
uses: ./.github/actions/free-disk-space
112+
- name: Install toolchain
113+
uses: moonrepo/setup-rust@v1
41114
with:
42-
github-token: ${{ secrets.GITHUB_TOKEN }}
43-
44-
- name: Run test migrations
45-
run: psql -f test-db/seed.sql postgresql://postgres:postgres@localhost:5432/postgres
46-
47-
- name: 📦 Build
48-
id: build
49-
run: RUSTFLAGS="-A dead_code" cargo build
50-
51-
- name: ⚡️ Check
52-
id: check
53-
run: RUSTFLAGS="-A dead_code" cargo check
115+
cache-base: main
116+
env:
117+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
118+
- name: Run the analyser codegen
119+
run: cargo codegen analyser
120+
- name: Run the configuration codegen
121+
run: cargo codegen-configuration
122+
- name: Check for git diff
123+
run: |
124+
if [[ `git status --porcelain` ]]; then
125+
git status
126+
git diff
127+
exit 1
128+
fi
54129
55-
- name: 🦺 Test
56-
id: test
57-
run: RUSTFLAGS="-A dead_code" cargo test
130+
# ci:
131+
# name: CI
132+
# timeout-minutes: 10
133+
# runs-on: ubuntu-latest
134+
#
135+
# services:
136+
# postgres:
137+
# image: postgres:latest
138+
# env:
139+
# POSTGRES_USER: postgres
140+
# POSTGRES_PASSWORD: postgres
141+
# POSTGRES_DB: postgres
142+
# ports:
143+
# - 5432:5432
144+
#
145+
# env:
146+
# DATABASE_URL: postgresql://postgres:postgres@localhost:5432/postgres
147+
#
148+
# steps:
149+
# - name: 🏗 Setup repository
150+
# uses: actions/checkout@v4
151+
# with:
152+
# submodules: true
153+
#
154+
# - name: Free Disk Space
155+
# uses: ./.github/actions/free-disk-space
156+
#
157+
# - name: Install toolchain
158+
# uses: moonrepo/setup-rust@e013866c4215f77c925f42f60257dec7dd18836e # v1.2.1
159+
# with:
160+
# components: rustfmt
161+
# bins: taplo-cli
162+
# cache-base: main
163+
# env:
164+
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
165+
# - name: Run format
166+
# run: |
167+
# cargo fmt --all --check
168+
# taplo format --check
169+
#
170+
# - name: 🏗 Setup monorepo
171+
# uses: ./.github/actions/setup-monorepo
172+
# with:
173+
# github-token: ${{ secrets.GITHUB_TOKEN }}
174+
#
175+
# - name: Run test migrations
176+
# run: psql -f test-db/seed.sql postgresql://postgres:postgres@localhost:5432/postgres
177+
#
178+
# - name: 📦 Build
179+
# id: build
180+
# run: RUSTFLAGS="-A dead_code" cargo build
181+
#
182+
# - name: ⚡️ Check
183+
# id: check
184+
# run: RUSTFLAGS="-A dead_code" cargo check
185+
#
186+
# - name: 🦺 Test
187+
# id: test
188+
# run: RUSTFLAGS="-A dead_code" cargo test

0 commit comments

Comments
 (0)