81 lines
1.8 KiB
YAML
81 lines
1.8 KiB
YAML
name: Go
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
paths:
|
|
- '.github/workflows/go.yaml'
|
|
- '**.go'
|
|
- 'go.mod'
|
|
- 'go.sum'
|
|
|
|
pull_request:
|
|
paths:
|
|
- '.github/workflows/go.yaml'
|
|
- '**.go'
|
|
- 'go.mod'
|
|
- 'go.sum'
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
fmt:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
cache: false
|
|
- name: fmt
|
|
run: go fmt ./...
|
|
- name: Check diff
|
|
run: git diff --exit-code
|
|
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
cache: false
|
|
- name: golangci-lint
|
|
uses: golangci/golangci-lint-action@v3
|
|
with:
|
|
only-new-issues: true
|
|
version: v1.51.1
|
|
|
|
generate:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
cache: false
|
|
- name: Generate
|
|
run: make generate
|
|
- name: Check diff
|
|
run: git diff --exit-code
|
|
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- uses: actions/setup-go@v4
|
|
with:
|
|
go-version-file: 'go.mod'
|
|
- run: make manifests
|
|
- name: Check diff
|
|
run: git diff --exit-code
|
|
- name: Install kubebuilder
|
|
run: |
|
|
curl -L -O https://github.com/kubernetes-sigs/kubebuilder/releases/download/v2.3.2/kubebuilder_2.3.2_linux_amd64.tar.gz
|
|
tar zxvf kubebuilder_2.3.2_linux_amd64.tar.gz
|
|
sudo mv kubebuilder_2.3.2_linux_amd64 /usr/local/kubebuilder
|
|
- name: Run go tests
|
|
run: |
|
|
go test -short `go list ./... | grep -v ./test_e2e_arc`
|