Skip to content

Commit

Permalink
Parallel build
Browse files Browse the repository at this point in the history
  • Loading branch information
ikatson committed Aug 27, 2024
1 parent c5ee8cc commit a4f859f
Showing 1 changed file with 41 additions and 17 deletions.
58 changes: 41 additions & 17 deletions .github/workflows/docker-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,12 @@ on:
branches: [xx-docker]

jobs:
build-push-docker:
build-docker-cross:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
platform: [linux/arm/v7, linux/amd64, linux/arm64]
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
Expand All @@ -22,7 +26,7 @@ jobs:
usr-local-cargo-registry-cache
usr-local-cargo-registry-index
src-target
key: docker-xx-v1
key: docker-xx-v1-${{ matrix.platform }}
save-always: true

- name: inject cache into docker
Expand All @@ -37,28 +41,49 @@ jobs:
}
skip-extraction: ${{ steps.cache.outputs.cache-hit }}

- name: cross-compile all binaries
# Building in a loop shows errors quicker and may be a bit faster as it's choking building 3
# rust targets in parallel
- name: cross-compile the binary
run: |
set -e
mkdir -p target/cross
docker buildx ls
# for platform in linux/arm/v7 linux/amd64 linux/arm64; do
for platform in linux/arm/v7; do
mkdir -p target/cross/$platform
docker build --builder ${{ steps.builder1.outputs.name }} \
--platform $platform \
-f docker/Dockerfile.xx \
--output type=local,dest=target/cross/$platform \
.
done
mkdir -p target/cross/${{ matrix.platform }}
docker build --builder ${{ steps.builder1.outputs.name }} \
--platform $platform \
-f docker/Dockerfile.xx \
--output type=local,dest=target/cross/${{ matrix.platform }} ./
- name: list files
run: find target/cross/

# TODO: publish these as artifacts
- name: Archive target/cross/
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform }}
path: target/cross/${{ matrix.platform }}/rqbit

build-push-docker-multiarch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/download-artifact@v4
with:
name: linux/arm/v7
path: target/cross/linux/arm/v7/rqbit

- uses: actions/download-artifact@v4
with:
name: linux/arm64
path: target/cross/linux/arm64/rqbit

- uses: actions/download-artifact@v4
with:
name: linux/amd64
path: target/cross/linux/amd64/rqbit

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v3
Expand All @@ -71,7 +96,6 @@ jobs:
with:
push: true
tags: ikatson/rqbit:${{ github.ref_name }}
# platforms: linux/amd64,linux/arm64,linux/arm/v7
platforms: linux/arm/v7
platforms: linux/amd64,linux/arm64,linux/arm/v7
context: target/cross/
file: docker/Dockerfile

0 comments on commit a4f859f

Please sign in to comment.