Files
coredns/.github/workflows/go.test.yml
Yong Tang 2d42f0e8f5 Enforce doker build test (#8271)
This PR enforce docker-build test so that every PR will check to make
sure the docker build (which reliesd on if base image, binary, etc
are still correct), is actually available and working.

Note previously, we only check a dry run of docker push, but not actually
build the docker image (as binary was fetched from release version on github).
This PR fetch local binary build instead as there maynot be the same in different
release versions of binary.

This is related 8228

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2026-07-10 00:24:39 -07:00

134 lines
3.6 KiB
YAML

name: Go Tests
on:
push:
branches:
- master
pull_request:
permissions:
contents: read
jobs:
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Install Go
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
with:
go-version-file: .go-version
id: go
- name: Build
run: go build -v ./...
- name: Test
run: |
( cd request; go test -race ./... )
( 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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Install Go
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.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
steps:
- name: Check out code
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Install Go
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
with:
go-version-file: .go-version
id: go
- name: Build
run: go build -v ./...
- name: Test
run: ( cd plugin; go test -race ./... )
test-e2e:
name: Test e2e
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Install Go
uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
with:
go-version-file: .go-version
id: go
- name: Build
run: go build -v ./...
- name: Test
run: |
go install github.com/fatih/faillint@c56e3ec6dbfc933bbeb884fd31f2bcd41f712657 # v1.15.0
( cd test; go test -race ./... )
test-makefile-release:
name: Test Makefile.release
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Install dependencies
run: sudo apt-get install make curl
- name: Test Makefile.release release
run: make GITHUB_ACCESS_TOKEN=x release -f Makefile.release
- name: Test Makefile.release release/github-push (dry-run)
run: make GITHUB_ACCESS_TOKEN=x -n release github-push -f Makefile.release
- name: Test Makefile.docker release/github-push (dry-run)
run: make VERSION=x DOCKER=x -n release docker-push -f Makefile.docker
- name: Prepare Docker build
run: |
for arch in amd64 arm arm64 mips64le ppc64le s390x riscv64 loong64; do
mkdir -p build/docker/$arch
cp build/linux/$arch/coredns build/docker/$arch/
done
- name: Test Makefile.docker build
run: make VERSION=x DOCKER=x -f Makefile.docker docker-build