Skip to content

Add a Helm Chart and CI Processes #16

Add a Helm Chart and CI Processes

Add a Helm Chart and CI Processes #16

Workflow file for this run

---
name: Integrations
on:
pull_request:
branches:
- main
permissions:
contents: read
issues: read
actions: read
pull-requests: read
security-events: write
jobs:
testing:
strategy:
matrix:
version:
- '1.22'
platform:
- ubuntu-latest
fail-fast: false
name: v${{ matrix.version}} Tests
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:
- testing
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
linting:
name: Linting
runs-on: ubuntu-latest
needs:
- testing
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:
- linting
- testing
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