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: 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 image: runs-on: ubuntu-latest timeout-minutes: 60 steps: - name: Check out the repo uses: actions/checkout@v3 - name: Build and push uses: docker/build-push-action@v2 with: context: . outputs: local build-args: VER=0.0.0-dev helm_check: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 with: fetch-depth: 0 - name: Helm Template Check For Sanity uses: igabaydulin/helm-check-action@0.1.4 env: CHART_LOCATION: ./charts/helm-dashboard CHART_VALUES: ./charts/helm-dashboard/values.yaml