mirror of
https://github.com/kemko/nomad.git
synced 2026-01-04 17:35:43 +03:00
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
103 lines
2.9 KiB
YAML
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
|