name: build on: push: branches: [main] pull_request: permissions: contents: read concurrency: group: build-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: server: strategy: matrix: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} defaults: run: working-directory: server steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false - uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0 with: go-version-file: server/go.mod - run: go mod tidy - run: git diff --exit-code - run: go vet ./... - run: go build -race ./... - run: go test -race -failfast ./... web: runs-on: ubuntu-latest defaults: run: working-directory: web steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: persist-credentials: false - uses: oven-sh/setup-bun@735343b667d3e6f658f44d0eca948eb6282f2b76 # v2.0.2 - run: bun install --frozen-lockfile - run: bun run check - run: bun run build