name: CI on: push: branches: [master] pull_request: branches: [master] permissions: contents: read jobs: test: name: Test (Go ${{ matrix.go-version }}) runs-on: ubuntu-latest strategy: matrix: go-version: ["1.26"] steps: - uses: actions/checkout@v4 - name: Set up Go ${{ matrix.go-version }} uses: actions/setup-go@v5 with: go-version: ${{ matrix.go-version }} cache: true - name: Install and start nginx run: | sudo apt-get update -qq sudo apt-get install -y -qq nginx sudo systemctl start nginx sudo systemctl enable nginx - name: Run tests (user) run: go test -race -coverprofile=coverage-user.out -covermode=atomic ./... - name: Run tests (root) run: sudo go test -race -coverprofile=coverage-root.out -covermode=atomic ./... - name: Upload coverage to Codecov if: matrix.go-version == '1.26' uses: codecov/codecov-action@v5 with: files: coverage-user.out,coverage-root.out token: ${{ secrets.CODECOV_TOKEN }} fail_ci_if_error: false lint: name: Lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: "1.26" cache: true - name: Run staticcheck uses: dominikh/staticcheck-action@v1 with: version: latest install-go: false