]> git.puffer.fish Git - matthieu/nova.git/commitdiff
use matrix build
authorMatthieuCoder <matthieu@matthieu-dev.xyz>
Fri, 20 Jan 2023 16:32:02 +0000 (20:32 +0400)
committerMatthieuCoder <matthieu@matthieu-dev.xyz>
Fri, 20 Jan 2023 16:32:02 +0000 (20:32 +0400)
.ci/build.sh [deleted file]
.github/workflows/build.yml
.github/workflows/docker-publish.yml

diff --git a/.ci/build.sh b/.ci/build.sh
deleted file mode 100755 (executable)
index 0ff94c4..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-
-N=4
-i=0
-TARGETS=(
-   # Linux builds
-   "linux-arm64-gnuc:aarch64-unknown-linux-gnu"
-   "linux-arm64-musl:aarch64-unknown-linux-musl"
-   "linux-armv7-gnuc:armv7-unknown-linux-gnueabi"
-   "linux-armv7-musl:armv7-unknown-linux-musleabi"
-   "linux-86_64-gnuc:x86_64-unknown-linux-gnu"
-   "linux-86_64-musl:x86_64-unknown-linux-musl"
-
-   # windows builds
-   "windows-86_64-gnu:x86_64-pc-windows-gnu"
-)
-
-for thing in "${TARGETS[@]}"; do 
-   KEY=${thing%%:*}
-   VALUE=${thing#*:}
-   
-   echo "* BUILDING FOR $VALUE"
-   cross build --release --target $VALUE
-
-   # Copy intol folders
-   mkdir -p ./build/$KEY/
-   cp target/$VALUE/release/* ./build/$KEY/
-
-   rm ./build/$KEY/*.{d,rlib}
-done
-
-wait < <(jobs -p)
index d4610608fc2f3ca07fddcb3b55ce436fa64b5391..86bc8159adbbb6f1b130f670481ed0da3affd3d4 100644 (file)
@@ -69,6 +69,16 @@ jobs:
   build_linux:
     name: 'Build for Linux'
     runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        arch: 
+          - aarch64-unknown-linux-gnu
+          - aarch64-unknown-linux-musl
+          - armv7-unknown-linux-gnueabi
+          - armv7-unknown-linux-musleabi
+          - x86_64-unknown-linux-gnu
+          - x86_64-unknown-linux-musl
     steps:
       - uses: actions/checkout@v2
       - uses: ATiltedTree/setup-rust@v1
@@ -82,12 +92,15 @@ jobs:
             ~/.cargo/registry/cache/
             ~/.cargo/git/db/
             target/
-          key: ${{ runner.os }}-cargo
+          key: ${{ runner.os }}-cargo-${{ matrix.arch }}
       - name: Build all
         run: |
           cargo install cross --force
           export CROSS_CONTAINER_ENGINE_NO_BUILDKIT=1
-          ./.ci/build.sh
+          cross build --release --target ${{ matrix.arch }}
+          mkdir -p ./build
+          cp target/${{ matrix.arch }}/release/* ./build/ || true
+          rm ./build/*.{d,rlib}
       - uses: actions/upload-artifact@v3
         with:
           name: release
index 5c075931a9c4abe2bdd1d83361ec249b9e68c649..51eaf03501ed80e7ce187b07c42d0325d2ead9db 100644 (file)
@@ -11,6 +11,13 @@ env:
 jobs:
   bake:
     runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        arch:
+          - linux/amd64
+          - linux/arm64/v8
+          - linux/arm/v7
     steps:
       - name: Checkout
         uses: actions/checkout@v3
@@ -22,7 +29,7 @@ jobs:
       - name: Set up Docker Buildx
         uses: docker/setup-buildx-action@v2
         with:
-          platforms: linux/amd64,linux/arm64
+          platforms: linux/amd64,linux/arm64/v8,linux/arm/v7
 
       - name: Log into registry ${{ env.REGISTRY }}
         uses: docker/login-action@28218f9b04b4f3f62068d7b6ce6ca5b26e35336c
@@ -30,6 +37,7 @@ jobs:
           registry: ${{ env.REGISTRY }}
           username: ${{ github.actor }}
           password: ${{ secrets.GITHUB_TOKEN }}
+
       - name: Build and push
         uses: docker/bake-action@v2
         with:
@@ -37,3 +45,4 @@ jobs:
           set: |
             *.cache-from=type=gha
             *.cache-to=type=gha,mode=max
+            *.platform=${{ matrix.platform }}