Skip to content
File

Blob: .github/workflows/ci.yaml

yaml84 lines
1name: CI
2 
3on:
4 push:
5 branches:
6 - main
7 paths-ignore:
8 - "**/*.md"
9 
10jobs:
11 testing:
12 name: Short Tests with Race Detector
13 runs-on: ${{ matrix.os }}
14 strategy:
15 fail-fast: false
16 matrix:
17 os: ["ubuntu-latest", "macos-latest", "windows-latest"]
18 go: ["1.27.1"]
19 steps:
20 - name: Checkout repository
21 uses: actions/checkout@v6
22 
23 - name: Set up Go
24 uses: actions/setup-go@v6
25 with:
26 go-version: ${{ matrix.go }}
27 
28 - name: Set up Node.js
29 uses: actions/setup-node@v4
30 with:
31 node-version: "22.14.0"
32 cache: "npm"
33 cache-dependency-path: ui/package-lock.json
34 
35 - name: Build UI
36 run: make ui
37 
38 - name: Quick Test with Race Detector
39 run: go test -v -short -race -timeout 120s ./...
40 
41 integration:
42 name: Run Integration Tests
43 needs: testing
44 runs-on: ubuntu-latest
45 steps:
46 - uses: actions/checkout@v6
47 
48 - name: Set up Go
49 uses: actions/setup-go@v6
50 with:
51 go-version: "1.27.1"
52 
53 - name: Set up Node.js
54 uses: actions/setup-node@v4
55 with:
56 node-version: "22.14.0"
57 cache: "npm"
58 cache-dependency-path: ui/package-lock.json
59 
60 - run: make ui
61 - run: make integration_test
62 
63 full:
64 name: Run Full Test Suite
65 needs: [testing, integration]
66 runs-on: ubuntu-latest
67 steps:
68 - uses: actions/checkout@v6
69 
70 - name: Set up Go
71 uses: actions/setup-go@v6
72 with:
73 go-version: "1.27.1"
74 
75 - name: Set up Node.js
76 uses: actions/setup-node@v4
77 with:
78 node-version: "22.14.0"
79 cache: "npm"
80 cache-dependency-path: ui/package-lock.json
81 
82 - run: make ui
83 - run: make full_test TIMEOUT=600s