feat: add support for running CoreDNS as a Windows service (#7962)

* feat: add support for running CoreDNS as a Windows service

Signed-off-by: John-Michael Mulesa <jmulesa@gmail.com>

* Use non-deprecated service check function.

Signed-off-by: John-Michael Mulesa <jmulesa@gmail.com>

* refactor: remove deprecated build tags and clean up imports in service files

Signed-off-by: John-Michael Mulesa <jmulesa@gmail.com>

* ci: add Windows test workflow and fix log field access in service_windows.go

Signed-off-by: John-Michael Mulesa <jmulesa@gmail.com>

* test: implement cross-platform file permission restriction for Windows compatibility in run_test.go

Signed-off-by: John-Michael Mulesa <jmulesa@gmail.com>

* refactor: remove Windows-specific icacls test logic and restrict unreadable file test to non-Windows platforms

Signed-off-by: John-Michael Mulesa <jmulesa@gmail.com>

* docs: add documentation for -windows-service flag in man page

Signed-off-by: John-Michael Mulesa <jmulesa@gmail.com>

---------

Signed-off-by: John-Michael Mulesa <jmulesa@gmail.com>
This commit is contained in:
John-Michael Mulesa
2026-03-26 15:10:53 -04:00
committed by GitHub
parent 12131b7455
commit 1c15569168
6 changed files with 117 additions and 15 deletions

View File

@@ -28,6 +28,31 @@ jobs:
( cd core; go test -race ./... )
( cd coremain; go test -race ./... )
test-windows:
name: Test Windows
runs-on: windows-latest
steps:
- name: Check out code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Install Go
uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
with:
go-version-file: .go-version
id: go
- name: Build
run: go build -v ./...
- name: Test
shell: bash
run: |
( cd request; go test -race ./... )
( cd core; go test -race ./... )
( cd coremain; go test -race ./... )
test-plugins:
name: Test Plugins
runs-on: ubuntu-latest