test.yml

 1name: Test
 2
 3on:
 4  push:
 5    branches:
 6      - main
 7  pull_request:
 8    branches:
 9      - main
10
11jobs:
12  test:
13    runs-on: ubuntu-latest
14    steps:
15      - name: Checkout
16        uses: actions/checkout@v4
17
18      - name: Set up Go
19        uses: actions/setup-go@v5
20        with:
21          go-version: '1.24'
22          cache: true
23
24      - name: Set up pnpm
25        uses: pnpm/action-setup@v4
26        with:
27          version: 9
28
29      - name: Set up Node.js
30        uses: actions/setup-node@v4
31        with:
32          node-version: '24'
33          cache: 'pnpm'
34          cache-dependency-path: ui/pnpm-lock.yaml
35
36      - name: Build UI
37        run: |
38          cd ui
39          pnpm install --frozen-lockfile
40          pnpm run build
41
42      - name: Build templates
43        run: |
44          for dir in templates/*/; do
45            name=$(basename "$dir")
46            echo "Creating $name.tar.gz..."
47            tar -czf "templates/$name.tar.gz" -C "templates/$name" --exclude='.DS_Store' .
48          done
49
50      - name: Run Go tests
51        run: go test -v ./...