From 7a857ad6289b0d67cef2643bfc67a7e231f1d668 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 26 Aug 2023 22:22:08 -0400 Subject: [PATCH 1/9] refactor: split out image building job matrix into separate jobs This will allow using a different runner for each. --- .github/actions/build-image/action.yml | 37 ++++++++++++++++++ .github/workflows/ci.yml | 52 ++++++++++++-------------- 2 files changed, 61 insertions(+), 28 deletions(-) create mode 100644 .github/actions/build-image/action.yml diff --git a/.github/actions/build-image/action.yml b/.github/actions/build-image/action.yml new file mode 100644 index 000000000..ce14f2cda --- /dev/null +++ b/.github/actions/build-image/action.yml @@ -0,0 +1,37 @@ +--- +name: 'build-image' + +description: 'builds a dokku docker image' + +inputs: + architecturet: + description: 'platform to build' + required: true + default: 'linux/amd64' + +runs: + using: "composite" + 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 + timeout-minutes: 20 + run: | + docker buildx build \ + --platform ${{ inputs.architecturet }} \ + --progress plain \ + --tag "dokku/dokku:latest" \ + . \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5f45f31ff..0a7a83c5a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -80,42 +80,38 @@ jobs: name: build path: build - build-image: - name: build-image.${{ matrix.architecture }} + build-image-amd64: + name: build-image.linux/amd64 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 + - name: build-image + uses: ./.github/actions/build-image with: - name: build - path: build + architecture: linux/amd64 - - name: set up qemu - uses: docker/setup-qemu-action@v2 + build-image-arm: + name: build-image.linux/arm + needs: build + runs-on: ubuntu-20.04 - - name: set up docker buildx - id: buildx - uses: docker/setup-buildx-action@v2 + steps: + - name: build-image + uses: ./.github/actions/build-image + with: + architecture: linux/arm - - name: build docker image - timeout-minutes: 20 - run: | - docker buildx build \ - --platform ${{ matrix.architecture }} \ - --progress plain \ - --tag "dokku/dokku:latest" \ - . + build-image-arm64: + name: build-image.linux/arm64 + needs: build + runs-on: ubuntu-20.04 + + steps: + - name: build-image + uses: ./.github/actions/build-image + with: + architecture: linux/arm64 unit-tests: name: unit.${{ matrix.index }} From 74fe0257f168fc0ddabd232795eea53c748ea1b4 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 26 Aug 2023 22:22:23 -0400 Subject: [PATCH 2/9] feat: use buildjet's runners for arm image building --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a7a83c5a..2b8224d55 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -94,7 +94,7 @@ jobs: build-image-arm: name: build-image.linux/arm needs: build - runs-on: ubuntu-20.04 + runs-on: buildjet-4vcpu-ubuntu-2204-arm steps: - name: build-image @@ -105,7 +105,7 @@ jobs: build-image-arm64: name: build-image.linux/arm64 needs: build - runs-on: ubuntu-20.04 + runs-on: buildjet-4vcpu-ubuntu-2204-arm steps: - name: build-image From 454cf7207a111bf18e27ed3a1878cf9830ae4435 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 26 Aug 2023 22:26:32 -0400 Subject: [PATCH 3/9] fix: correct lint issue --- .github/actions/build-image/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-image/action.yml b/.github/actions/build-image/action.yml index ce14f2cda..f4ddbd493 100644 --- a/.github/actions/build-image/action.yml +++ b/.github/actions/build-image/action.yml @@ -34,4 +34,4 @@ runs: --platform ${{ inputs.architecturet }} \ --progress plain \ --tag "dokku/dokku:latest" \ - . \ No newline at end of file + . From 0772fb4faad1aee46d3b32d7354fc03bd333e16e Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 26 Aug 2023 22:36:07 -0400 Subject: [PATCH 4/9] fix: checkout the code first --- .github/actions/build-image/action.yml | 2 -- .github/workflows/ci.yml | 6 ++++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/actions/build-image/action.yml b/.github/actions/build-image/action.yml index f4ddbd493..66ba82e3f 100644 --- a/.github/actions/build-image/action.yml +++ b/.github/actions/build-image/action.yml @@ -12,8 +12,6 @@ inputs: runs: using: "composite" steps: - - uses: actions/checkout@v3 - - name: download packages uses: actions/download-artifact@v3 with: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2b8224d55..1e65bf873 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -86,6 +86,8 @@ jobs: runs-on: ubuntu-20.04 steps: + - uses: actions/checkout@v3 + - name: build-image uses: ./.github/actions/build-image with: @@ -97,6 +99,8 @@ jobs: runs-on: buildjet-4vcpu-ubuntu-2204-arm steps: + - uses: actions/checkout@v3 + - name: build-image uses: ./.github/actions/build-image with: @@ -108,6 +112,8 @@ jobs: runs-on: buildjet-4vcpu-ubuntu-2204-arm steps: + - uses: actions/checkout@v3 + - name: build-image uses: ./.github/actions/build-image with: From 80dfa4a979b1fdf0ea33354cbcc700f320122afb Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 26 Aug 2023 22:50:17 -0400 Subject: [PATCH 5/9] fix: move properties around and specify shell --- .github/actions/build-image/action.yml | 2 +- .github/workflows/ci.yml | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/actions/build-image/action.yml b/.github/actions/build-image/action.yml index 66ba82e3f..5963965fa 100644 --- a/.github/actions/build-image/action.yml +++ b/.github/actions/build-image/action.yml @@ -26,7 +26,7 @@ runs: uses: docker/setup-buildx-action@v2 - name: build docker image - timeout-minutes: 20 + shell: bash run: | docker buildx build \ --platform ${{ inputs.architecturet }} \ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1e65bf873..db4348cc0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -84,6 +84,7 @@ jobs: name: build-image.linux/amd64 needs: build runs-on: ubuntu-20.04 + timeout-minutes: 20 steps: - uses: actions/checkout@v3 @@ -97,6 +98,7 @@ jobs: name: build-image.linux/arm needs: build runs-on: buildjet-4vcpu-ubuntu-2204-arm + timeout-minutes: 20 steps: - uses: actions/checkout@v3 @@ -110,6 +112,7 @@ jobs: name: build-image.linux/arm64 needs: build runs-on: buildjet-4vcpu-ubuntu-2204-arm + timeout-minutes: 20 steps: - uses: actions/checkout@v3 From 99dd9da2bb8dc7c5eef07bdaa879b1d6b37a0c40 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 26 Aug 2023 23:06:08 -0400 Subject: [PATCH 6/9] refactor: only use qemu when building for arm --- .github/actions/build-image/action.yml | 4 ---- .github/workflows/ci.yml | 3 +++ 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/actions/build-image/action.yml b/.github/actions/build-image/action.yml index 5963965fa..f1ba56250 100644 --- a/.github/actions/build-image/action.yml +++ b/.github/actions/build-image/action.yml @@ -18,9 +18,6 @@ runs: 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 @@ -29,7 +26,6 @@ runs: shell: bash run: | docker buildx build \ - --platform ${{ inputs.architecturet }} \ --progress plain \ --tag "dokku/dokku:latest" \ . diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index db4348cc0..b42986740 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -103,6 +103,9 @@ jobs: steps: - uses: actions/checkout@v3 + - name: set up qemu + uses: docker/setup-qemu-action@v2 + - name: build-image uses: ./.github/actions/build-image with: From 35e9203d131d9756f3c3bfff1632c64bbd093ae6 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 26 Aug 2023 23:32:36 -0400 Subject: [PATCH 7/9] fix: respect the specified architecture --- .github/actions/build-image/action.yml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/actions/build-image/action.yml b/.github/actions/build-image/action.yml index f1ba56250..80da55f60 100644 --- a/.github/actions/build-image/action.yml +++ b/.github/actions/build-image/action.yml @@ -4,7 +4,7 @@ name: 'build-image' description: 'builds a dokku docker image' inputs: - architecturet: + architecture: description: 'platform to build' required: true default: 'linux/amd64' @@ -25,7 +25,15 @@ runs: - name: build docker image shell: bash run: | - docker buildx build \ - --progress plain \ - --tag "dokku/dokku:latest" \ - . + if [[ "architecture" == "linux/arm" ]]; then + docker buildx build \ + --platform linux/arm \ + --progress plain \ + --tag "dokku/dokku:latest" \ + . + else + docker buildx build \ + --progress plain \ + --tag "dokku/dokku:latest" \ + . + fi \ No newline at end of file From f6b0f58108e5b82b8e0fc49c6f17c08ab0d4de57 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sat, 26 Aug 2023 23:35:06 -0400 Subject: [PATCH 8/9] fix: add missing newline --- .github/actions/build-image/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-image/action.yml b/.github/actions/build-image/action.yml index 80da55f60..a3cfdbab4 100644 --- a/.github/actions/build-image/action.yml +++ b/.github/actions/build-image/action.yml @@ -36,4 +36,4 @@ runs: --progress plain \ --tag "dokku/dokku:latest" \ . - fi \ No newline at end of file + fi From e37c94fa4df7a287b412abe460273b4b74c41b01 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Sun, 27 Aug 2023 00:09:49 -0400 Subject: [PATCH 9/9] fix: respect input --- .github/actions/build-image/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/actions/build-image/action.yml b/.github/actions/build-image/action.yml index a3cfdbab4..a77093eb8 100644 --- a/.github/actions/build-image/action.yml +++ b/.github/actions/build-image/action.yml @@ -25,7 +25,7 @@ runs: - name: build docker image shell: bash run: | - if [[ "architecture" == "linux/arm" ]]; then + if [[ "${{ inputs.architecture }}" == "linux/arm" ]]; then docker buildx build \ --platform linux/arm \ --progress plain \