name: Core CI Tests on: push: branches-ignore: - main - release-** paths-ignore: - 'README.md' - 'CHANGELOG.md' - '.changelog/*' - '.tours/*' - 'contributing/*' - 'demo/*' - 'dev/*' - 'e2e/terraform/*' - 'integrations/*' - 'pkg/*' - 'scripts/*' - 'terraform/*' - 'ui/*' - 'website/*' env: VERBOSE: 1 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