Add nomad monitor export command #21066
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Core CI Tests | |
on: | |
pull_request: | |
paths-ignore: | |
- 'README.md' | |
- 'CHANGELOG.md' | |
- '.changelog/**' | |
- '.tours/**' | |
- 'contributing/**' | |
- 'demo/**' | |
- 'dev/**' | |
- 'e2e/terraform/**' | |
- 'e2e/ui/**' | |
- 'integrations/**' | |
- 'pkg/**' | |
- 'scripts/**' | |
- 'terraform/**' | |
- 'ui/**' | |
- 'website/**' | |
push: | |
branches: | |
- main | |
- release/** | |
paths-ignore: | |
- 'README.md' | |
- 'CHANGELOG.md' | |
- '.changelog/**' | |
- '.tours/**' | |
- 'contributing/**' | |
- 'demo/**' | |
- 'dev/**' | |
- 'e2e/terraform/**' | |
- 'e2e/ui/**' | |
- 'integrations/**' | |
- 'pkg/**' | |
- 'scripts/**' | |
- 'terraform/**' | |
- 'ui/**' | |
- 'website/**' | |
env: | |
VERBOSE: 1 | |
GOTESTARCH: amd64 | |
CONSUL_VERSION: 1.20.4 | |
VAULT_VERSION: 1.18.5 | |
NOMAD_SLOW_TEST: 0 | |
NOMAD_TEST_LOG_LEVEL: OFF | |
jobs: | |
checks: | |
uses: ./.github/workflows/checks.yaml | |
# Compile on Windows amd64, macOS arm64, Linux amd64, and Linux arm64. | |
# | |
# GitHub hosted Linux arm64 runners are in preview and not available to | |
# private repositories, so we must use our self-hosted runners. This also has | |
# added security benefits. | |
# | |
# The runs-on conditional cannot be placed into the matrix.os array as GitHub | |
# breaks apart any nested array within it. It subsequently uses the elements | |
# as individual runners to call runs-on. | |
compile: | |
needs: [checks] | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-22.04 | |
- ubuntu-22.04-arm | |
- macos-14 | |
- windows-2022 | |
runs-on: ${{ (endsWith(github.repository, '-enterprise')) && (matrix.os == 'ubuntu-22.04-arm') && fromJSON('["self-hosted", "ubuntu-22.04-arm64"]') || matrix.os }} | |
timeout-minutes: 20 | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 | |
with: | |
cache: ${{ contains(runner.name, 'Github Actions') }} | |
go-version-file: .go-version | |
cache-dependency-path: '**/go.sum' | |
- name: Run make dev | |
run: | | |
make bootstrap | |
make dev | |
tests-api: | |
needs: [checks] | |
runs-on: custom-linux-xl-nomad-22.04 | |
timeout-minutes: 8 | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 | |
with: | |
cache: true | |
go-version-file: .go-version | |
cache-dependency-path: '**/go.sum' | |
- name: Run API tests | |
env: | |
GOTEST_MOD: api | |
run: | | |
make bootstrap | |
make generate-all | |
sudo sed -i 's!Defaults!#Defaults!g' /etc/sudoers | |
sudo -E env "PATH=$PATH" make test-nomad-module | |
tests-groups: | |
needs: [checks] | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
groups: | |
- nomad | |
- client | |
- command | |
- drivers | |
- quick | |
runners: | |
- custom-ubuntu-22.04-xl | |
- custom-ubuntu-22.04-arm64-xl | |
runs-on: ${{matrix.runners}} | |
name: tests-groups (${{matrix.groups}}, ${{ contains(matrix.runners, '-arm64') && ' linux_arm64 )' || ' linux_amd64 )' }} | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 | |
with: | |
cache: ${{ contains(runner.name, 'Github Actions') }} | |
go-version-file: .go-version | |
cache-dependency-path: '**/go.sum' | |
- name: Install "driver" group dependencies | |
if: ${{ matrix.groups == 'drivers' }} | |
run: sudo apt update && sudo apt install qemu-system | |
- name: Install "command" group dependencies | |
if: ${{ matrix.groups == 'command' }} | |
run: sudo apt update && sudo apt install xdg-utils | |
- name: Run Matrix Tests | |
env: | |
GOTEST_GROUP: ${{matrix.groups}} | |
run: | | |
make bootstrap | |
make generate-all | |
make dev | |
sudo -E env "PATH=$PATH" hc-install install -version ${{env.VAULT_VERSION}} -path '${{env.GOPATH}}/bin' vault | |
sudo -E env "PATH=$PATH" hc-install install -version ${{env.CONSUL_VERSION}} -path '${{env.GOPATH}}/bin' consul | |
sudo sed -i 's!Defaults!#Defaults!g' /etc/sudoers | |
sudo -E env "PATH=$PATH" make test-nomad | |
handle-failure: | |
needs: | |
- checks | |
- compile | |
- tests-api | |
- tests-groups | |
if: always() && github.event_name == 'push' && contains(needs.*.result, 'failure') | |
uses: ./.github/workflows/test-failure-notification.yml | |
secrets: inherit | |
with: | |
actor: ${{ github.triggering_actor }} | |
git-branch: ${{ github.ref_name }} | |
workflow-run-id: ${{ github.run_id }} | |
workflow-name: ${{ github.workflow }} | |
permissions: | |
contents: read | |
id-token: write |