Files
nomad/.github/workflows/test-windows.yml
Tim Gross 6b8ddff1fa windows: set job object for executor and children (#24214)
On Windows, if the `raw_exec` driver's executor exits, the child processes are
not also killed. Create a Windows "job object" (not to be confused with a Nomad
job) and add the executor to it. Child processes of the executor will inherit
the job automatically. When the handle to the job object is freed (on executor
exit), the job itself is destroyed and this causes all processes in that job to
exit.

Fixes: https://github.com/hashicorp/nomad/issues/23668
Ref: https://learn.microsoft.com/en-us/windows/win32/procthread/job-objects
2024-10-16 09:20:26 -04:00

103 lines
2.9 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@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
- name: Setup go
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32 # v5.0.2
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
permissions:
contents: read