name: Build on: push: branches: [ "main" ] pull_request: branches: [ "main" ] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: 1.18 - name: Unit tests run: | go test -v -race ./... # Run all the tests with the race detector enabled - name: Static analysis run: | go vet ./... # go vet is the official Go static analyzer - name: Cyclomatic complexity run: | go install github.com/fzipp/gocyclo/cmd/gocyclo@latest /home/runner/go/bin/gocyclo -over 19 main.go pkg # forbid code with huge/complex functions - name: Inject version uses: jacobtomlinson/gha-find-replace@v2 with: find: 'v0.0.0' replace: ${{ github.ref_name }} include: "pkg/dashboard/static/datadog.js" - name: Calm down GoReleaser run: git add pkg/dashboard/static/datadog.js && git commit -m "temporary" - name: Dry Run GoReleaser uses: goreleaser/goreleaser-action@v2 with: version: latest args: release --snapshot --rm-dist - name: Test Binary is Runnable run: "dist/helm-dashboard_linux_amd64_v1/helm-dashboard --help" - name: golangci-lint uses: golangci/golangci-lint-action@v3.2.0 with: # version: latest # skip-go-installation: true skip-pkg-cache: true skip-build-cache: true # args: --timeout=15m