2020-03-19 12:17:27 +01:00
name : Continuous Integration
2022-03-19 09:38:49 +11:00
env :
GO_VERSION : 1.18
2020-05-04 20:03:27 +02:00
on :
push :
branches :
2020-08-25 09:18:29 +02:00
- master
2020-08-25 09:16:13 +02:00
pull_request :
2020-03-19 12:17:27 +01:00
jobs :
2022-06-11 12:42:16 +10:00
unit-tests :
2021-10-09 14:16:48 +09:00
strategy :
fail-fast : false
matrix :
os :
- ubuntu-latest
- windows-latest
2022-06-11 12:42:16 +10:00
include :
- os : ubuntu-latest
2022-06-11 13:20:49 +10:00
cache_path : ~/.cache/go-build
2022-06-11 12:42:16 +10:00
- os : windows-latest
cache_path : ~\AppData\Local\go-build
2021-10-09 14:16:48 +09:00
name : ci - ${{matrix.os}}
runs-on : ${{matrix.os}}
2022-06-11 12:42:16 +10:00
env :
GOFLAGS : -mod=vendor
steps :
- name : Checkout code
uses : actions/checkout@v2
- name : Setup Go
uses : actions/setup-go@v1
with :
go-version : 1.18 .x
- name : Cache build
uses : actions/cache@v3
with :
path : |
${{matrix.cache_path}}
~/go/pkg/mod
key : ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-test
restore-keys : |
${{runner.os}}-go-
- name : Test code
# we're passing -short so that we skip the integration tests, which will be run in parallel below
run : |
go test ./... -short
2022-08-11 21:28:55 +10:00
integration-tests-old :
2022-06-11 12:42:16 +10:00
runs-on : ubuntu-latest
strategy :
fail-fast : false
matrix :
parallelism : [ 5 ]
index : [ 0 , 1 , 2 , 3 , 4 ]
2022-08-11 21:28:55 +10:00
name : "Integration Tests (Old pattern) (${{ matrix.index }}/${{ matrix.parallelism }})"
env :
GOFLAGS : -mod=vendor
steps :
- name : Checkout code
uses : actions/checkout@v2
- name : Setup Go
uses : actions/setup-go@v1
with :
go-version : 1.18 .x
- name : Cache build
uses : actions/cache@v1
with :
path : |
~/.cache/go-build
~/go/pkg/mod
key : ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-test
restore-keys : |
${{runner.os}}-go-
- name : Test code
2022-11-12 10:18:02 +11:00
# for file.allow thing see https://vielmetti.typepad.com/logbook/2022/10/git-security-fixes-lead-to-fatal-transport-file-not-allowed-error-in-ci-systems-cve-2022-39253.html
2022-08-11 21:28:55 +10:00
run : |
2022-11-12 10:18:02 +11:00
git config --global protocol.file.allow always && PARALLEL_TOTAL=${{ matrix.parallelism }} PARALLEL_INDEX=${{ matrix.index }} go test pkg/integration/deprecated/*.go
2022-08-11 21:28:55 +10:00
integration-tests :
runs-on : ubuntu-latest
name : "Integration Tests"
2020-03-19 12:17:27 +01:00
env :
GOFLAGS : -mod=vendor
steps :
2020-03-20 14:27:22 +01:00
- name : Checkout code
2020-03-19 12:17:27 +01:00
uses : actions/checkout@v2
2020-03-20 14:27:22 +01:00
- name : Setup Go
2020-03-20 14:18:44 +01:00
uses : actions/setup-go@v1
with :
2022-03-19 09:38:49 +11:00
go-version : 1.18 .x
2020-03-20 14:27:22 +01:00
- name : Cache build
uses : actions/cache@v1
with :
2022-06-11 13:11:56 +10:00
path : |
~/.cache/go-build
~/go/pkg/mod
2021-07-27 22:03:37 +02:00
key : ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-test
2020-03-20 14:27:22 +01:00
restore-keys : |
${{runner.os}}-go-
- name : Test code
2020-03-19 12:17:27 +01:00
run : |
2022-08-14 14:33:44 +10:00
go test pkg/integration/clients/*.go
2021-07-27 22:03:37 +02:00
build :
runs-on : ubuntu-latest
env :
GOFLAGS : -mod=vendor
GOARCH : amd64
steps :
- name : Checkout code
uses : actions/checkout@v2
- name : Setup Go
uses : actions/setup-go@v1
2020-03-25 11:03:59 +01:00
with :
2022-03-19 09:38:49 +11:00
go-version : 1.18 .x
2021-07-27 22:03:37 +02:00
- name : Cache build
uses : actions/cache@v1
with :
2022-06-11 13:11:56 +10:00
path : |
~/.cache/go-build
~/go/pkg/mod
2021-07-27 22:03:37 +02:00
key : ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-build
restore-keys : |
${{runner.os}}-go-
- name : Build linux binary
run : |
GOOS=linux go build
- name : Build windows binary
run : |
GOOS=windows go build
- name : Build darwin binary
run : |
GOOS=darwin go build
2022-08-14 17:19:08 +10:00
- name : Build integration test binary
run : |
GOOS=linux go build cmd/integration_test/main.go
- name : Build integration test injector
run : |
GOOS=linux go build pkg/integration/clients/injector/main.go
2022-08-15 19:45:24 +10:00
check-codebase :
2022-01-04 10:46:14 +11:00
runs-on : ubuntu-latest
env :
GOFLAGS : -mod=vendor
GOARCH : amd64
steps :
- name : Checkout code
uses : actions/checkout@v2
- name : Setup Go
uses : actions/setup-go@v1
with :
2022-03-19 09:38:49 +11:00
go-version : 1.18 .x
2022-01-04 10:46:14 +11:00
- name : Cache build
uses : actions/cache@v1
with :
2022-06-11 13:11:56 +10:00
path : |
~/.cache/go-build
~/go/pkg/mod
2022-01-04 10:46:14 +11:00
key : ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-build
restore-keys : |
${{runner.os}}-go-
- name : Check Cheatsheet
run : |
go run scripts/cheatsheet/main.go check
2022-08-15 19:45:24 +10:00
- name : Check Vendor Directory
# ensure our vendor directory matches up with our go modules
run : |
go mod vendor && git diff --exit-code || (echo "Unexpected change to vendor directory. Run 'go mod vendor' locally and commit the changes" && exit 1)
2022-01-04 11:03:29 +11:00
lint :
runs-on : ubuntu-latest
2022-03-19 09:38:49 +11:00
env :
GOFLAGS : -mod=vendor
2022-01-04 11:03:29 +11:00
steps :
2022-03-19 09:38:49 +11:00
- name : Checkout code
2022-01-04 11:03:29 +11:00
uses : actions/checkout@v2
2022-03-19 09:38:49 +11:00
- name : Setup Go
uses : actions/setup-go@v1
with :
go-version : 1.18 .x
- name : Cache build
uses : actions/cache@v1
with :
2022-06-11 13:11:56 +10:00
path : |
~/.cache/go-build
~/go/pkg/mod
2022-03-19 09:38:49 +11:00
key : ${{runner.os}}-go-${{hashFiles('**/go.sum')}}-test
restore-keys : |
${{runner.os}}-go-
2022-01-04 11:03:29 +11:00
- name : Lint
2022-03-19 09:38:49 +11:00
uses : golangci/golangci-lint-action@v3.1.0
2022-01-04 11:03:29 +11:00
with :
version : latest
2022-01-15 15:12:10 +11:00
- name : errors
run : golangci-lint run
if : ${{ failure() }}