Skip to content

Commit 6dbf265

Browse files
committed
Add GitHub Actions workflow
1 parent 7608b3b commit 6dbf265

1 file changed

Lines changed: 133 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
name: CI
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
push:
8+
branches:
9+
- main
10+
11+
jobs:
12+
rust-checks:
13+
name: Rust
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v4
19+
20+
- name: Install mise
21+
uses: jdx/mise-action@v2
22+
23+
- name: Install tools with mise
24+
run: mise install
25+
26+
- name: Cache Cargo
27+
uses: actions/cache@v4
28+
with:
29+
path: |
30+
~/.cargo/registry
31+
~/.cargo/git
32+
src-tauri/target
33+
key: ${{ runner.os }}-cargo-${{ hashFiles('src-tauri/Cargo.lock') }}
34+
restore-keys: |
35+
${{ runner.os }}-cargo-
36+
37+
- name: Install Tauri dependencies (Linux)
38+
run: |
39+
sudo apt-get update
40+
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
41+
42+
- name: Build check tool
43+
run: go build -o check .
44+
working-directory: ./scripts/check
45+
46+
- name: Check rustfmt
47+
run: ./scripts/check/check --check rustfmt --ci
48+
49+
- name: Run clippy
50+
run: ./scripts/check/check --check clippy --ci
51+
52+
- name: Run cargo-audit
53+
run: ./scripts/check/check --check cargo-audit --ci
54+
55+
- name: Run cargo-deny
56+
run: ./scripts/check/check --check cargo-deny --ci
57+
58+
- name: Run Rust tests
59+
run: ./scripts/check/check --check rust-tests --ci
60+
61+
svelte-checks:
62+
name: Svelte
63+
runs-on: ubuntu-latest
64+
65+
steps:
66+
- name: Checkout code
67+
uses: actions/checkout@v4
68+
69+
- name: Install mise
70+
uses: jdx/mise-action@v2
71+
72+
- name: Install tools with mise
73+
run: mise install
74+
75+
- name: Cache pnpm
76+
uses: actions/cache@v4
77+
with:
78+
path: ~/.pnpm-store
79+
key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
80+
restore-keys: |
81+
${{ runner.os }}-pnpm-
82+
83+
- name: Install dependencies
84+
run: pnpm install --frozen-lockfile
85+
86+
- name: Build check tool
87+
run: go build -o check .
88+
working-directory: ./scripts/check
89+
90+
- name: Check Prettier
91+
run: ./scripts/check/check --check prettier --ci
92+
93+
- name: Run ESLint
94+
run: ./scripts/check/check --check eslint --ci
95+
96+
- name: Run Svelte tests
97+
run: ./scripts/check/check --check svelte-tests --ci
98+
99+
e2e-tests:
100+
name: E2E Tests
101+
runs-on: ubuntu-latest
102+
timeout-minutes: 30
103+
104+
steps:
105+
- name: Checkout code
106+
uses: actions/checkout@v4
107+
108+
- name: Install mise
109+
uses: jdx/mise-action@v2
110+
111+
- name: Install tools with mise
112+
run: mise install
113+
114+
- name: Cache pnpm
115+
uses: actions/cache@v4
116+
with:
117+
path: ~/.pnpm-store
118+
key: ${{ runner.os }}-pnpm-${{ hashFiles('pnpm-lock.yaml') }}
119+
restore-keys: |
120+
${{ runner.os }}-pnpm-
121+
122+
- name: Install dependencies
123+
run: pnpm install --frozen-lockfile
124+
125+
- name: Install Playwright browsers
126+
run: pnpm exec playwright install --with-deps chromium
127+
128+
- name: Build check tool
129+
run: go build -o check .
130+
working-directory: ./scripts/check
131+
132+
- name: Run E2E tests
133+
run: ./scripts/check/check --check e2e-tests --ci

0 commit comments

Comments
 (0)