mirror of
https://github.com/kemko/nomad.git
synced 2026-01-05 09:55:44 +03:00
This change creates a reusable workflow for notifying Slack on CI failures. The message will include useful links and information about the failure, so product engineers can investigate and fix any problems. The new workflow is used by selected workflows which trigger on merges to main or release/* branches. The notification is only sent on failure and when the event was a push (PR merge) meaning the number of notifications should be minimal. The aim is to help identify and draw attention to failure across our release branches, in particular when automated processes happen.
119 lines
3.3 KiB
YAML
119 lines
3.3 KiB
YAML
name: test-windows
|
|
on:
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
- release/**
|
|
paths-ignore:
|
|
- 'README.md'
|
|
- 'CHANGELOG.md'
|
|
- '.changelog/**'
|
|
- '.tours/**'
|
|
- 'contributing/**'
|
|
- 'demo/**'
|
|
- 'dev/**'
|
|
- 'e2e/**'
|
|
- 'integrations/**'
|
|
- 'pkg/**'
|
|
- 'scripts/**'
|
|
- 'terraform/**'
|
|
- 'ui/**'
|
|
- 'website/**'
|
|
push:
|
|
branches:
|
|
- main
|
|
- release/**
|
|
paths-ignore:
|
|
- 'README.md'
|
|
- 'CHANGELOG.md'
|
|
- '.changelog/**'
|
|
- '.tours/**'
|
|
- 'contributing/**'
|
|
- 'demo/**'
|
|
- 'dev/**'
|
|
- 'e2e/**'
|
|
- 'integrations/**'
|
|
- 'pkg/**'
|
|
- 'scripts/**'
|
|
- 'terraform/**'
|
|
- 'ui/**'
|
|
- 'website/**'
|
|
|
|
env:
|
|
VAULT_VERSION: 1.4.1
|
|
jobs:
|
|
test-windows:
|
|
runs-on: 'windows-2019-16core'
|
|
env:
|
|
GOTESTSUM_PATH: c:\tmp\test-reports
|
|
steps:
|
|
- name: Docker Info
|
|
run: docker version
|
|
- run: git config --global core.autocrlf false
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
- name: Setup go
|
|
uses: actions/setup-go@41dfa10bad2bb2ae585af6ee5bb4d7d973ad74ed # v5.1.0
|
|
with:
|
|
go-version-file: ".go-version"
|
|
- name: Show installed Go version
|
|
shell: bash
|
|
run: |-
|
|
export PATH=/c/go/bin:/c/gopath/bin:$PATH
|
|
go version
|
|
- uses: "./.github/actions/install-vault"
|
|
with:
|
|
version: "$VAULT_VERSION"
|
|
- run: vault version
|
|
- run: choco install make
|
|
- name: Install golang dependencies
|
|
shell: bash
|
|
run: |-
|
|
make deps
|
|
- name: Pre-download docker test image
|
|
shell: bash
|
|
run: |-
|
|
docker pull docker.mirror.hashicorp.services/hashicorpdev/busybox-windows:ltsc2019
|
|
- name: Build nomad
|
|
shell: bash
|
|
run: |-
|
|
go install .
|
|
- name: Run tests with gotestsum
|
|
shell: bash
|
|
env:
|
|
BUSYBOX_IMAGE: docker.mirror.hashicorp.services/hashicorpdev/busybox-windows:ltsc2019
|
|
run: |-
|
|
# Only test docker driver tests for now
|
|
export PATH=/c/go/bin:/c/gopath/bin:$PATH
|
|
gotestsum --format=short-verbose \
|
|
--junitfile results.xml \
|
|
github.com/hashicorp/nomad/drivers/docker \
|
|
github.com/hashicorp/nomad/drivers/rawexec \
|
|
github.com/hashicorp/nomad/drivers/shared/executor \
|
|
github.com/hashicorp/nomad/client/lib/fifo \
|
|
github.com/hashicorp/nomad/client/logmon \
|
|
github.com/hashicorp/nomad/client/allocrunner/taskrunner/template \
|
|
github.com/hashicorp/nomad/client/allocdir \
|
|
github.com/hashicorp/nomad/plugins/base
|
|
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
|
|
with:
|
|
name: results.xml
|
|
path: results.xml
|
|
|
|
handle-failure:
|
|
permissions:
|
|
contents: read
|
|
id-token: write
|
|
needs:
|
|
- test-windows
|
|
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
|