From 5c2aa93d6e24018dd5ec4ddf9a2e2a2b59694d35 Mon Sep 17 00:00:00 2001 From: Seth Hoenig Date: Fri, 18 Mar 2022 10:39:46 -0500 Subject: [PATCH] ci: turn on testing in github actions --- .github/workflows/test-core.yaml | 152 +++++++++++++++++++++++++++++++ GNUmakefile | 1 + 2 files changed, 153 insertions(+) create mode 100644 .github/workflows/test-core.yaml diff --git a/.github/workflows/test-core.yaml b/.github/workflows/test-core.yaml new file mode 100644 index 000000000..3a7da21d3 --- /dev/null +++ b/.github/workflows/test-core.yaml @@ -0,0 +1,152 @@ +name: Core CI Tests +on: + pull_request: + branches: + - main + paths-ignore: + - 'README.md' + - 'CHANGELOG.md' + - '.changelog/*' + - '.tours/*' + - 'contributing/*' + - 'demo/*' + - 'pkg/*' + - 'scripts/*' + - 'terraform/*' + - 'ui/*' + - 'website/*' + push: + branches-ignore: + - main + - release-** + paths-ignore: + - 'README.md' + - 'CHANGELOG.md' + - '.changelog/*' + - '.tours/*' + - 'contributing/*' + - 'demo/*' + - 'pkg/*' + - 'scripts/*' + - 'terraform/*' + - 'ui/*' + - 'website/*' +env: + GO_VERSION: 1.17.7 + GOBIN: /usr/local/bin + GOTESTARCH: amd64 + CONSUL_VERSION: 1.11.3 + VAULT_VERSION: 1.9.3 + NOMAD_SLOW_TEST: 0 + NOMAD_TEST_LOG_LEVEL: ERROR +jobs: + checks: + runs-on: ubuntu-20.04 + timeout-minutes: 10 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 # needs tags for checkproto + - uses: magnetikonline/action-golang-cache@v1 + with: + go-version: ${{env.GO_VERSION}} + cache-key-suffix: -checks + - name: Run make check + run: | + make bootstrap + make check + compile: + strategy: + fail-fast: false + matrix: + os: [ubuntu-20.04, macos-11, windows-2019] + runs-on: ${{matrix.os}} + timeout-minutes: 20 + steps: + - uses: actions/checkout@v2 + - uses: magnetikonline/action-golang-cache@v1 + with: + go-version: ${{env.GO_VERSION}} + cache-key-suffix: -compile + - name: Run make dev + env: + GOBIN: ${{env.GOROOT}}/bin # windows kludge + run: | + make bootstrap + make dev + tests-api: + runs-on: ubuntu-20.04 + timeout-minutes: 30 + steps: + - uses: actions/checkout@v2 + - uses: magnetikonline/action-golang-cache@v1 + with: + go-version: ${{env.GO_VERSION}} + cache-key-suffix: -api + - name: Run API tests + env: + GOTEST_MOD: api + run: | + make bootstrap + make generate-all + make test-nomad-module + tests-pkgs: + runs-on: ubuntu-20.04 + timeout-minutes: 30 + strategy: + fail-fast: false + matrix: + pkg: + - acl + - client + - client/allocdir + - client/allochealth + - client/allocrunner + - client/allocwatcher + - client/config + - client/consul + - client/devicemanager + - client/dynamicplugins + - client/fingerprint + # - client/lib/... + - client/logmon + - client/pluginmanager + - client/state + - client/stats + - client/structs + - client/taskenv + - command + - command/agent + # - drivers/docker + # - drivers/exec + - drivers/java + - drivers/rawexec + - helper/... + - internal/... + - jobspec/... + - lib/... + - nomad + - nomad/deploymentwatcher + - nomad/stream + - nomad/structs + - nomad/volumewatcher + - plugins/... + - scheduler/... + - testutil + steps: + - uses: actions/checkout@v2 + - uses: magnetikonline/action-golang-cache@v1 + with: + go-version: ${{env.GO_VERSION}} + cache-key-suffix: -pkgs + - name: Run Matrix Tests + env: + GOTEST_PKGS: ./${{matrix.pkg}} + run: | + make bootstrap + make generate-all + hc-install vault ${{env.VAULT_VERSION}} + hc-install consul ${{env.CONSUL_VERSION}} + sudo sed -i 's!Defaults!#Defaults!g' /etc/sudoers + sudo -E env "PATH=$PATH" make test-nomad + diff --git a/GNUmakefile b/GNUmakefile index fa36f852c..64cd3856f 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -136,6 +136,7 @@ deps: ## Install build and development dependencies go install github.com/bufbuild/buf/cmd/buf@v0.36.0 go install github.com/hashicorp/go-changelog/cmd/changelog-build@latest go install golang.org/x/tools/cmd/stringer@v0.1.8 + go install gophers.dev/cmds/hc-install/cmd/hc-install@v1.0.1 .PHONY: lint-deps lint-deps: ## Install linter dependencies