bump version #248
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| go-tests: | |
| runs-on: ubuntu-latest | |
| env: | |
| DATABASE_URL: postgres://postgres:postgres@localhost:55432/gateway_test?sslmode=disable | |
| TEST_DATABASE_URL: postgres://postgres:postgres@localhost:55432/gateway_test?sslmode=disable | |
| GOLANGCI_LINT_VERSION: v2.5.0 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.25.x" | |
| - name: Install libfido2 dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libfido2-dev libudev-dev pkg-config | |
| - name: Install Task | |
| run: | | |
| curl -sL https://taskfile.dev/install.sh | sh -s -- -b /usr/local/bin | |
| task --version | |
| - name: Go deps | |
| run: task go:deps | |
| - name: Install Convox CLI | |
| run: | | |
| set -euo pipefail | |
| ARCH=$(uname -m) | |
| URL="https://github.com/convox/convox/releases/latest/download/convox-linux" | |
| if [ "$ARCH" = "aarch64" ] || [ "$ARCH" = "arm64" ]; then | |
| URL="https://github.com/convox/convox/releases/latest/download/convox-linux-arm64" | |
| fi | |
| curl -fsSL "$URL" -o /tmp/convox | |
| sudo mv /tmp/convox /usr/local/bin/convox | |
| sudo chmod 755 /usr/local/bin/convox | |
| convox version || true | |
| - name: Install Go tools | |
| run: task go:tools | |
| - name: Go tests | |
| run: task go:test | |
| lint: | |
| runs-on: ubuntu-latest | |
| env: | |
| GOLANGCI_LINT_VERSION: v2.5.0 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version: "1.25.x" | |
| - name: Cache golangci-lint cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ~/.cache/golangci-lint | |
| key: golangci-${{ runner.os }}-${{ hashFiles('**/go.sum') }} | |
| - name: Install libfido2 dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libfido2-dev libudev-dev pkg-config | |
| - name: Install Task | |
| run: | | |
| curl -sL https://taskfile.dev/install.sh | sh -s -- -b /usr/local/bin | |
| task --version | |
| - name: Install golangci-lint | |
| run: | | |
| curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh \ | |
| | sudo sh -s -- -b /usr/local/bin "${GOLANGCI_LINT_VERSION}" | |
| golangci-lint version | |
| - name: Go deps (lint warmup) | |
| run: task go:deps | |
| - name: Verify golangci-lint config | |
| run: task go:lint:config | |
| - name: golangci-lint | |
| uses: golangci/golangci-lint-action@v8 | |
| with: | |
| version: ${{ env.GOLANGCI_LINT_VERSION }} | |
| env: | |
| CGO_ENABLED: 1 | |
| - name: Install jscpd for duplication checking | |
| run: npm install -g jscpd | |
| - name: Check code duplication | |
| run: task duplication | |
| - name: Check file length limits | |
| run: task file-length | |
| - name: Install shellcheck | |
| run: sudo apt-get install -y shellcheck | |
| - name: Shellcheck | |
| run: task shellcheck | |
| - name: Install govulncheck | |
| run: go install golang.org/x/vuln/cmd/govulncheck@latest | |
| - name: Check for vulnerabilities | |
| run: task go:sec:vuln | |
| - name: Install TruffleHog | |
| run: | | |
| curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -b /usr/local/bin | |
| - name: Scan for secrets | |
| run: task go:sec:secrets | |
| web-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "20" | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: "1.3.1" | |
| - name: Install NPM packages | |
| working-directory: web | |
| run: | | |
| bun install --frozen-lockfile | |
| - name: Install Task | |
| run: | | |
| curl -sL https://taskfile.dev/install.sh | sh -s -- -b /usr/local/bin | |
| task --version | |
| - name: Web lint (Typecheck, Biome, and knip) | |
| run: task web:lint | |
| - name: Check for biome-ignore comments (zero tolerance) | |
| run: task web:check-ignores | |
| - name: Web tests | |
| run: task web:test | |
| mock-oauth-tests: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: "1.3.1" | |
| - name: Install Task | |
| run: | | |
| curl -sL https://taskfile.dev/install.sh | sh -s -- -b /usr/local/bin | |
| task --version | |
| - name: Mock OAuth lint (Typecheck and Biome) | |
| run: task mock-oauth:lint | |
| - name: Mock OAuth tests | |
| run: task mock-oauth:test |