Skip to content

Add Golangci lint, replace statik with embed and test swagger #13

Add Golangci lint, replace statik with embed and test swagger

Add Golangci lint, replace statik with embed and test swagger #13

Workflow file for this run

name: Pull-Request Testing
on:
pull_request:
workflow_dispatch:
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- uses: actions/setup-go@v4
with:
go-version: '1.21'
- name: Install dependencies
run: go mod download
- name: Install GolangCI Lint
run: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.55.2
- name: Install StaticCheck
run: go install honnef.co/go/tools/cmd/staticcheck@2023.1.6
- name: golangci-lint
run: golangci-lint run --timeout=30m --max-same-issues=0 --out-format=github-actions --new
# Add legacy checks since golangci-lint only tests changed files for now
- name: StaticCheck
run: staticcheck -f text `go list ./... | grep -v "pkg/client"`
- name: Go Vet
run: go vet `go list ./... | grep -v "pkg/client"`
test:
name: Unit Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: '1.21'
- name: Install dependencies
run: go mod download
- name: Run Tests
run: go test -cover `go list ./... | grep -v 'pkg/client'`
test-swagger:
name: Test Swagger
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: '1.21'
- name: Install dependencies
run: go mod download
- name: Install Swagger
run: go install github.com/go-swagger/go-swagger/cmd/swagger@v0.30.5
- name: Generate Swagger
run: make swagger
- name: Validate no changes
run: git diff --exit-code ./swaggerui/html/swagger.json
- name: Check breaking changes
if: always()
id: breaking
run: |
echo "diff=$(swagger diff --break <(git show HEAD~1:swaggerui/html/swagger.json --quiet) ./swaggerui/html/swagger.json)\\n" >> $GITHUB_OUTPUT
- name: Add comment
if: always()
uses: mshick/add-pr-comment@v2
with:
message-id: breaking-comment
message: |
Swagger have breaking changes:
```text
${{ steps.breaking.outputs.diff }}
```
build:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build docker image
run: docker build .