mirror of
https://github.com/coredns/coredns.git
synced 2026-07-10 09:40:12 -04:00
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>
134 lines
3.6 KiB
YAML
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
|