Share the Go build cache when building in Dockerfiles (#1853)

On my machine this makes image rebuilds go from ~5m to 1.5s.

This also required setting DOCKER_BUILDKIT=1 in integration test image
builds.

I also took the opportunity to bump the Go version used in those tests
to Go 1.17 to match the image build processes, and tidied up the
workflow files a bit too (renaming for consistency, typos, whitespace,
etc.)
This commit is contained in:
Jason Hall
2021-12-22 12:43:12 -05:00
committed by GitHub
parent 710650da73
commit b1b6962726
13 changed files with 98 additions and 111 deletions
@@ -0,0 +1,29 @@
name: Integration tests (K8s)
on:
pull_request:
branches: ['master']
concurrency:
group: int-test-k8s-${{ github.head_ref }}
cancel-in-progress: true
jobs:
tests:
env:
IMAGE_REPO: 'localhost:5000'
REGISTRY: 'localhost:5000'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v2
with:
go-version: 1.17
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- name: Run build-image-and-k8s-integration-test
run: |
make travis-setup
make minikube-setup
make k8s-executor-build-push
make integration-test-k8s
@@ -1,29 +1,25 @@
name: Integration tests (Layers)
# Triggers the workflow on push or pull request events
on: [pull_request]
on:
pull_request:
branches: ['master']
concurrency:
group: int-test-layers-${{ github.head_ref }}
cancel-in-progress: true
jobs:
build-executor:
tests:
env:
IMAGE_REPO: 'localhost:5000'
REGISTRY: 'localhost:5000'
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v2
- uses: actions/setup-go@v2
with:
go-version: 1.14
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
with:
fetch-depth: 0
go-version: 1.17
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- name: Run integration-test-layers
run: |
+19 -23
View File
@@ -1,14 +1,15 @@
name: Integration Tests Misc
# Triggers the workflow on push or pull request events
on: [pull_request]
on:
pull_request:
branches: ['master']
concurrency:
group: int-test-mis-${{ github.head_ref }}
cancel-in-progress: true
jobs:
build-executor:
tests:
env:
IMAGE_REPO: 'localhost:5000'
REGISTRY: 'localhost:5000'
@@ -17,25 +18,20 @@ jobs:
TRAVIS_PULL_REQUEST: ${{ github.event.number }}
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.14
id: go
- uses: actions/setup-go@v2
with:
go-version: 1.17
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- name: Check out code into the Go module directory
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Print Travis ENV vars
run: |
echo "TRAVIS_BRANCH: ${TRAVIS_BRANCH}"
echo "TRAVIS_PULL_REQUEST: ${TRAVIS_PULL_REQUEST}"
echo "TRAVIS_REPO_SLUG: ${TRAVIS_REPO_SLUG}"
- name: Print Travis ENV vars
run: |
echo "TRAVIS_BRANCH: ${TRAVIS_BRANCH}"
echo "TRAVIS_PULL_REQUEST: ${TRAVIS_PULL_REQUEST}"
echo "TRAVIS_REPO_SLUG: ${TRAVIS_REPO_SLUG}"
- name: Run integration-test-misc
run : |
make travis-setup
make minikube-setup
make integration-test-misc
- name: Run integration-test-misc
run : |
make travis-setup
make minikube-setup
make integration-test-misc
+14 -17
View File
@@ -1,31 +1,28 @@
name: Integration tests (Run)
# Triggers the workflow on push or pull request events
on: [pull_request]
on:
pull_request:
branches: ['master']
concurrency:
group: int-test-run-${{ github.head_ref }}
cancel-in-progress: true
jobs:
build-executor:
tests:
env:
IMAGE_REPO: 'localhost:5000'
REGISTRY: 'localhost:5000'
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.14
id: go
- uses: actions/setup-go@v2
with:
go-version: 1.17
- uses: actions/checkout@v2
- uses: docker/setup-buildx-action@v1
- name: Check out code into the Go module directory
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Run integration-test-run
run: |
make travis-setup
make minikube-setup
make integration-test-run
- name: Run integration-test-run
run: |
make travis-setup
make minikube-setup
make integration-test-run
@@ -1,33 +0,0 @@
name: Integration tests (K8s)
# Triggers the workflow on pull request events
on: [pull_request]
concurrency:
group: int-test-k8s${{ github.head_ref }}
cancel-in-progress: true
jobs:
build-executor:
env:
IMAGE_REPO: 'localhost:5000'
REGISTRY: 'localhost:5000'
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.14
id: go
- name: Check out code into the Go module directory
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Run build-image-and-k8s-integration-test
run: |
make travis-setup
make minikube-setup
make k8s-executor-build-push
make integration-test-k8s
+9 -19
View File
@@ -1,30 +1,20 @@
name: Unit tests
# Triggers the workflow on push or pull request events
on: [pull_request]
on:
pull_request:
branches: ['master']
concurrency:
group: unit-tests-${{ github.head_ref }}
cancel-in-progress: true
jobs:
build-executor:
env:
IMAGE_REPO: 'localhost:5000'
REGISTRY: 'localhost:5000'
tests:
runs-on: ubuntu-latest
steps:
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: 1.14
id: go
- uses: actions/setup-go@v2
with:
go-version: 1.17
- uses: actions/checkout@v2
- name: Check out code into the Go module directory
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Run unit-test
run:
make test
- run: make test