+++ /dev/null
-#!/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)
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
~/.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
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
- 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
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
+
- name: Build and push
uses: docker/bake-action@v2
with:
set: |
*.cache-from=type=gha
*.cache-to=type=gha,mode=max
+ *.platform=${{ matrix.platform }}