Refactor Prometheus Metrics #17
Workflow file for this run
This file contains 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: Go | |
on: | |
pull_request: | |
branches: | |
- main | |
permissions: | |
contents: read | |
issues: read | |
actions: read | |
pull-requests: read | |
security-events: write | |
jobs: | |
test: | |
strategy: | |
matrix: | |
version: | |
- '1.22' | |
- '1.23' | |
platform: | |
- ubuntu-latest | |
fail-fast: false | |
name: Test (v${{ matrix.version }}) | |
runs-on: ${{ matrix.platform }} | |
steps: | |
- name: Checkout the Repository | |
uses: actions/checkout@v4 | |
- name: Set up Go v${{ matrix.version }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.version }} | |
cache-dependency-path: go.sum | |
- name: Verify the Go modules | |
run: go mod verify | |
- name: Download the Go modules | |
run: go mod download | |
- name: Run standard tests | |
run: go test -v ./... | |
coverage: | |
name: Coverage | |
runs-on: ubuntu-latest | |
needs: | |
- test | |
steps: | |
- name: Checkout the Repository | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
cache-dependency-path: go.sum | |
cache: true | |
- name: Verify the Go modules | |
run: go mod verify | |
- name: Download the Go modules | |
run: go mod download | |
- name: Run coverage tests | |
run: |- | |
go test -v ./... \ | |
-covermode=count \ | |
-coverprofile=coverage.out | |
- name: Show coverage report summary | |
run: |- | |
go tool cover \ | |
-func=coverage.out | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: coverage.out | |
name: go-cover | |
flags: unit-tests | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
cache-dependency-path: go.sum | |
cache: true | |
- name: Run golangci-lint | |
uses: golangci/golangci-lint-action@v6 | |
with: | |
version: latest | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
needs: | |
- lint | |
- test | |
steps: | |
- name: Checkout the repository | |
uses: actions/checkout@v4 | |
with: | |
# Setting fetch-depth to 0 here should fetch all of the history and | |
# all of the tags for the current branch being built | |
fetch-depth: 0 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version-file: go.mod | |
cache-dependency-path: go.sum | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run GoReleaser | |
id: releaser | |
uses: goreleaser/goreleaser-action@v6 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
distribution: goreleaser | |
version: '~> v2' | |
args: >- | |
release | |
--clean | |
--skip publish | |
--snapshot | |
--timeout 5m | |
- name: Upload linux_amd64_v3 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dashboard_linux_amd64_v3 | |
path: dist/dashboard_linux_amd64_v3/ | |
# If there are no files found when uploading this artifact, then there | |
# was an issue with the build, so fail and fix rather than permit the | |
# pull request to continue and merge, potentially breaking the release | |
if-no-files-found: error | |
- name: Upload linux_arm64 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dashboard_linux_arm64 | |
path: dist/dashboard_linux_arm64/ | |
if-no-files-found: error | |
- name: Upload darwin_arm64 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dashboard_darwin_arm64 | |
path: dist/dashboard_darwin_arm64/ | |
if-no-files-found: error | |
- name: Upload windows_amd64_v3 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dashboard_windows_amd64_v3 | |
path: dist/dashboard_windows_amd64_v3/ | |
if-no-files-found: error | |
- name: Upload windows_arm64 | |
uses: actions/upload-artifact@v4 | |
with: | |
name: dashboard_windows_arm64 | |
path: dist/dashboard_windows_arm64/ | |
if-no-files-found: error | |
- name: Upload Metadata | |
uses: actions/upload-artifact@v4 | |
with: | |
name: goreleaser-metadata | |
path: dist/*.json | |
if-no-files-found: warn |