tests: split out image building into it's own job to speed up ci

Previously, we would build the dokku package and install it in the same step. While the package building was relatively quick, because of our multi-architecture support, we would end up spending a large amount of time waiting for arm/arm64 images to build.

This change splits those builds out, allowing unit tests to start much quicker and each platform to be tested in parallel.
This commit is contained in:
Jose Diaz-Gonzalez
2023-06-17 00:31:20 -04:00
parent 867e43998f
commit e7652fbae3
2 changed files with 38 additions and 1 deletions

View File

@@ -61,6 +61,8 @@ jobs:
- name: build package
run: ./tests/ci/setup.sh build
env:
SKIP_IMAGE_BUILD: true
- name: set matrix for build
id: set-matrix
@@ -75,6 +77,41 @@ jobs:
name: build
path: build
build-image:
name: build-image.${{ matrix.architecture }}
needs: build
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
architecture:
- linux/amd64
- linux/arm
- linux/arm64
steps:
- uses: actions/checkout@v3
- name: download packages
uses: actions/download-artifact@v3
with:
name: build
path: build
- name: set up qemu
uses: docker/setup-qemu-action@v2
- name: set up docker buildx
id: buildx
uses: docker/setup-buildx-action@v2
- name: build docker image
run: |
docker buildx build \
--platform ${{ matrix.architecture }} \
--progress plain \
--tag "dokku/dokku:latest"
unit-tests:
name: unit.${{ matrix.index }}
needs: build

View File

@@ -391,7 +391,7 @@ fn-build-docker-image() {
--push \
--tag "dokku/dokku:latest" \
--tag "dokku/dokku:$VERSION" .
else
elif [[ "$SKIP_IMAGE_BUILD" != "true" ]]; then
docker buildx build \
--platform linux/arm,linux/arm64,linux/amd64 \
--progress plain \