1name: build-and-test
 2
 3on:
 4  workflow_call:
 5
 6jobs:
 7  with-go:
 8    strategy:
 9      matrix:
10        go-version: [1.24.2]
11        platform: [ubuntu-latest, macos-latest, windows-latest]
12    runs-on: ${{ matrix.platform }}
13    steps:
14      - name: Check out code
15        uses: actions/checkout@v4
16
17      - name: Set up Go ${{ matrix.go-version }}
18        uses: actions/setup-go@v5
19        with:
20          go-version: ${{ matrix.go-version }}
21
22      - name: Build
23        run: make
24
25      - name: Test
26        run: make test
27        env:
28          GITHUB_TEST_USER: ${{ secrets._GITHUB_TEST_USER }}
29          GITHUB_TOKEN_ADMIN: ${{ secrets._GITHUB_TOKEN_ADMIN }}
30          GITHUB_TOKEN_PRIVATE: ${{ secrets._GITHUB_TOKEN_PRIVATE }}
31          GITHUB_TOKEN_PUBLIC: ${{ secrets._GITHUB_TOKEN_PUBLIC }}
32          GITLAB_API_TOKEN: ${{ secrets.GITLAB_API_TOKEN }}
33          GITLAB_PROJECT_ID: ${{ secrets.GITLAB_PROJECT_ID }}
34
35  with-node:
36    runs-on: ubuntu-latest
37    strategy:
38      matrix:
39        node-version: [16.x, 18.x, 20.x]
40    defaults:
41      run:
42        working-directory: webui
43    steps:
44      - name: Setup Node.js ${{ matrix.node-version }}
45        uses: actions/setup-node@v4
46        with:
47          node-version: ${{ matrix.node-version }}
48
49      - name: Check out code
50        uses: actions/checkout@v4
51
52      - name: Install
53        run: make install
54
55      - name: Build
56        run: make build
57
58      - name: Test
59        run: make test