Update Go dependencies #52
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: | |
| pull_request: | |
| branches: | |
| - main | |
| jobs: | |
| setup: | |
| name: go mod download | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - name: Download Dependencies | |
| run: go mod download | |
| fmt: | |
| name: go fmt, vet, mod verify, mod tidy | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - name: Run go fmt, vet, mod verify, mod tidy | |
| run: | | |
| go fmt ./... | |
| git diff --exit-code | |
| go vet ./... | |
| git diff --exit-code | |
| go mod verify | |
| git diff --exit-code | |
| go mod tidy | |
| git diff --exit-code | |
| lint: | |
| name: golangci-Lint | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - name: Run GolangCI-Lint | |
| uses: golangci/golangci-lint-action@v8 | |
| with: | |
| version: latest | |
| govulncheck: | |
| name: govulncheck | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - name: Run govulncheck | |
| run: | | |
| go install golang.org/x/vuln/cmd/govulncheck@latest | |
| govulncheck ./... | |
| build: | |
| name: build main.go | |
| needs: setup | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - name: Build Main Binary | |
| run: go build -o main ./cmd/web/main.go | |
| unit-tests: | |
| name: unit-tests | |
| needs: [fmt, lint, govulncheck, build] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - name: Run Unit Tests | |
| run: go test -tags=unittest -v ./... | |
| integration-tests: | |
| name: integration-tests | |
| needs: [fmt, lint, govulncheck, build, unit-tests] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Code | |
| uses: actions/checkout@v4 | |
| - name: Setup Go | |
| uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: go.mod | |
| - name: Run Integration Tests | |
| run: go test -tags=integrationtest -v ./... |