use matrix build
This commit is contained in:
parent
191f0cfb06
commit
a177fe775c
32
.ci/build.sh
32
.ci/build.sh
|
@ -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)
|
17
.github/workflows/build.yml
vendored
17
.github/workflows/build.yml
vendored
|
@ -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
|
||||
|
|
11
.github/workflows/docker-publish.yml
vendored
11
.github/workflows/docker-publish.yml
vendored
|
@ -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 }}
|
||||
|
|
Loading…
Reference in a new issue