From 18567aaea7b0ff9a8c92b453d32c2cff303d1a80 Mon Sep 17 00:00:00 2001 From: Cat Core Date: Tue, 6 May 2025 21:01:45 +0200 Subject: [PATCH 1/9] Publish artifacts for Windows x86 and Arm64, MacOs x64 and universal2 --- .github/workflows/publish.yml | 89 ++++++++++++++++++++++++++++------- build.gradle.kts | 6 ++- 2 files changed, 78 insertions(+), 17 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 650194f..1743cff 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -14,27 +14,29 @@ jobs: strategy: matrix: include: - - build: linux-x86 + - build: linux-x86_64 os: ubuntu-latest target: x86_64-unknown-linux-gnu - - build: windows-x86 + - build: windows-i686 + os: windows-latest + target: i686-pc-windows-msvc + msvc_arch: amd64_x86 + - build: windows-x86_64 os: windows-latest target: x86_64-pc-windows-msvc - #- build: windows-i686 - # os: windows-latest - # target: i686-pc-windows-msvc - #- build: windows-aarch64 - # os: windows-latest - # target: aarch64-pc-windows-msvc - #- build: macos-x86 - # os: macos-latest - # target: x86_64-apple-darwin - - build: macos-aarch64 - os: macos-latest - target: aarch64-apple-darwin + msvc_arch: amd64 + - build: windows-aarch64 + os: windows-latest + target: aarch64-pc-windows-msvc + msvc_arch: amd64_arm64 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 + - name: Install C toolchain (Windows) + if: runner.os == 'Windows' + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ matrix.msvc_arch }} - name: Install packages (Linux) if: runner.os == 'Linux' uses: awalsh128/cache-apt-pkgs-action@v1.4.3 @@ -76,12 +78,67 @@ jobs: MAVEN_URL: ${{ secrets.NEW_MAVEN_URL }} MAVEN_USERNAME: ${{ secrets.NEW_MAVEN_USERNAME }} MAVEN_PASSWORD: ${{ secrets.NEW_MAVEN_PASSWORD }} + SNAPSHOTS_URL: ${{ secrets.NEW_MAVEN_SNAPSHOT_URL }} + SNAPSHOTS_USERNAME: ${{ secrets.NEW_MAVEN_SNAPSHOT_USERNAME }} + SNAPSHOTS_PASSWORD: ${{ secrets.NEW_MAVEN_SNAPSHOT_PASSWORD }} TARGET: ${{ matrix.target }} OS: ${{ matrix.build }} + publish_macos: + runs-on: ubuntu-latest + container: ghcr.io/rust-cross/cargo-zigbuild:0.20 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: "microsoft" + java-version: "21" + cache: "gradle" + - uses: gradle/actions/wrapper-validation@v3 + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + - run: rustup target add aarch64-apple-darwin + - run: rustup target add x86_64-apple-darwin + - run: cargo build --release --target universal2-apple-darwin + - run: mv "target/aarch64-apple-darwin/release/ornithe-installer-rs" "target/aarch64-apple-darwin/release/ornithe-installer-rs.bin" + - run: mv "target/x86_64-apple-darwin/release/ornithe-installer-rs" "target/x86_64-apple-darwin/release/ornithe-installer-rs.bin" + - run: mv "target/universal2-apple-darwin/release/ornithe-installer-rs" "target/universal2-apple-darwin/release/ornithe-installer-rs.bin" + - uses: actions/upload-artifact@v4 + with: + name: Artifacts ${{ matrix.target }} + path: | + target/${{ matrix.target }}/release/ornithe-installer-rs* + !target/**/ornithe-installer-rs.d + !target/**/build/ - run: ./gradlew publish --stacktrace env: + MAVEN_URL: ${{ secrets.NEW_MAVEN_URL }} + MAVEN_USERNAME: ${{ secrets.NEW_MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.NEW_MAVEN_PASSWORD }} SNAPSHOTS_URL: ${{ secrets.NEW_MAVEN_SNAPSHOT_URL }} SNAPSHOTS_USERNAME: ${{ secrets.NEW_MAVEN_SNAPSHOT_USERNAME }} SNAPSHOTS_PASSWORD: ${{ secrets.NEW_MAVEN_SNAPSHOT_PASSWORD }} - TARGET: ${{ matrix.target }} - OS: ${{ matrix.build }} + TARGET: aarch64-apple-darwin + OS: macos-aarch64 + - run: ./gradlew publish --stacktrace + env: + MAVEN_URL: ${{ secrets.NEW_MAVEN_URL }} + MAVEN_USERNAME: ${{ secrets.NEW_MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.NEW_MAVEN_PASSWORD }} + SNAPSHOTS_URL: ${{ secrets.NEW_MAVEN_SNAPSHOT_URL }} + SNAPSHOTS_USERNAME: ${{ secrets.NEW_MAVEN_SNAPSHOT_USERNAME }} + SNAPSHOTS_PASSWORD: ${{ secrets.NEW_MAVEN_SNAPSHOT_PASSWORD }} + TARGET: x86_64-apple-darwin + OS: macos-x86_64 + - run: ./gradlew publish --stacktrace + env: + MAVEN_URL: ${{ secrets.NEW_MAVEN_URL }} + MAVEN_USERNAME: ${{ secrets.NEW_MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.NEW_MAVEN_PASSWORD }} + SNAPSHOTS_URL: ${{ secrets.NEW_MAVEN_SNAPSHOT_URL }} + SNAPSHOTS_USERNAME: ${{ secrets.NEW_MAVEN_SNAPSHOT_USERNAME }} + SNAPSHOTS_PASSWORD: ${{ secrets.NEW_MAVEN_SNAPSHOT_PASSWORD }} + TARGET: universal2-apple-darwin + OS: macos-universal2 \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index 7fa367b..0d33e5d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -54,6 +54,7 @@ publishing { repositories { if (env["MAVEN_URL"] != null) { repositories.maven { + name = "Release" url = uri(env["MAVEN_URL"]!!) credentials { @@ -61,8 +62,11 @@ publishing { password = env["MAVEN_PASSWORD"] } } - } else if (env["SNAPSHOTS_URL"] != null) { + } + + if (env["SNAPSHOTS_URL"] != null) { repositories.maven { + name = "Snapshots" url = uri(env["SNAPSHOTS_URL"]!!) credentials { From 5a8e044da131072d8790003200b3088b575f8f3e Mon Sep 17 00:00:00 2001 From: Cat Core Date: Tue, 6 May 2025 21:07:03 +0200 Subject: [PATCH 2/9] Fix rust-cache key --- .github/workflows/publish.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 1743cff..2a158b6 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -55,6 +55,8 @@ jobs: with: toolchain: stable - uses: Swatinem/rust-cache@v2 + with: + key: ${{ matrix.build }} - run: rustup target add ${{ matrix.target }} # Build the CLI only binary - run: cargo build --no-default-features --release --target ${{ matrix.target }} From 23808ea6c1e98f5cd6799a7b7340e36fb329b47b Mon Sep 17 00:00:00 2001 From: Cat Core Date: Tue, 6 May 2025 21:08:03 +0200 Subject: [PATCH 3/9] Fix Windows x86 key --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2a158b6..70025f9 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,7 +17,7 @@ jobs: - build: linux-x86_64 os: ubuntu-latest target: x86_64-unknown-linux-gnu - - build: windows-i686 + - build: windows-x86 os: windows-latest target: i686-pc-windows-msvc msvc_arch: amd64_x86 From 67965367c039ba013060c85e9c306b84a51828e4 Mon Sep 17 00:00:00 2001 From: Cat Core Date: Wed, 7 May 2025 11:03:02 +0200 Subject: [PATCH 4/9] Unify MacOS rename binaries step --- .github/workflows/publish.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 70025f9..7c2b0e4 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -104,9 +104,11 @@ jobs: - run: rustup target add aarch64-apple-darwin - run: rustup target add x86_64-apple-darwin - run: cargo build --release --target universal2-apple-darwin - - run: mv "target/aarch64-apple-darwin/release/ornithe-installer-rs" "target/aarch64-apple-darwin/release/ornithe-installer-rs.bin" - - run: mv "target/x86_64-apple-darwin/release/ornithe-installer-rs" "target/x86_64-apple-darwin/release/ornithe-installer-rs.bin" - - run: mv "target/universal2-apple-darwin/release/ornithe-installer-rs" "target/universal2-apple-darwin/release/ornithe-installer-rs.bin" + - name: Rename Binaries + run: | + mv "target/aarch64-apple-darwin/release/ornithe-installer-rs" "target/aarch64-apple-darwin/release/ornithe-installer-rs.bin" + mv "target/x86_64-apple-darwin/release/ornithe-installer-rs" "target/x86_64-apple-darwin/release/ornithe-installer-rs.bin" + mv "target/universal2-apple-darwin/release/ornithe-installer-rs" "target/universal2-apple-darwin/release/ornithe-installer-rs.bin" - uses: actions/upload-artifact@v4 with: name: Artifacts ${{ matrix.target }} From eeb80307cdf839a405bcfc9d4826983abd1c57e2 Mon Sep 17 00:00:00 2001 From: Cat Core Date: Wed, 7 May 2025 18:30:31 +0200 Subject: [PATCH 5/9] Cross compile linux aarch64 --- .github/workflows/publish.yml | 44 ++++++++++++++++++++++++++++++++++- Cross.toml | 5 ++++ 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 Cross.toml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7c2b0e4..874ec0c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -145,4 +145,46 @@ jobs: SNAPSHOTS_USERNAME: ${{ secrets.NEW_MAVEN_SNAPSHOT_USERNAME }} SNAPSHOTS_PASSWORD: ${{ secrets.NEW_MAVEN_SNAPSHOT_PASSWORD }} TARGET: universal2-apple-darwin - OS: macos-universal2 \ No newline at end of file + OS: macos-universal2 + publish_linux_cross: + strategy: + matrix: + include: + - build: linux-aarch64 + target: aarch64-unknown-linux-gnu + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: "microsoft" + java-version: "21" + cache: "gradle" + - uses: gradle/actions/wrapper-validation@v3 + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + with: + key: linux-cross + - run: cargo install cross --git https://github.com/cross-rs/cross + - run: cross build --release --target ${{ matrix.target }} + - run: mv "target/${{ matrix.target }}/release/ornithe-installer-rs" "target/${{ matrix.target }}/release/ornithe-installer-rs.bin" + - uses: actions/upload-artifact@v4 + with: + name: Artifacts ${{ matrix.target }} + path: | + target/${{ matrix.target }}/release/ornithe-installer-rs* + !target/**/ornithe-installer-rs.d + !target/**/build/ + - run: ./gradlew publish --stacktrace + env: + MAVEN_URL: ${{ secrets.NEW_MAVEN_URL }} + MAVEN_USERNAME: ${{ secrets.NEW_MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.NEW_MAVEN_PASSWORD }} + SNAPSHOTS_URL: ${{ secrets.NEW_MAVEN_SNAPSHOT_URL }} + SNAPSHOTS_USERNAME: ${{ secrets.NEW_MAVEN_SNAPSHOT_USERNAME }} + SNAPSHOTS_PASSWORD: ${{ secrets.NEW_MAVEN_SNAPSHOT_PASSWORD }} + TARGET: ${{ matrix.target }} + OS: ${{ matrix.build }} \ No newline at end of file diff --git a/Cross.toml b/Cross.toml new file mode 100644 index 0000000..754cd04 --- /dev/null +++ b/Cross.toml @@ -0,0 +1,5 @@ +[build] +pre-build = [ + "dpkg --add-architecture $CROSS_DEB_ARCH", + "apt-get update && apt-get --assume-yes install libxcb-render0-dev:$CROSS_DEB_ARCH libxcb-shape0-dev:$CROSS_DEB_ARCH libxcb-xfixes0-dev:$CROSS_DEB_ARCH libxkbcommon-dev:$CROSS_DEB_ARCH libssl-dev:$CROSS_DEB_ARCH libgtk-3-dev:$CROSS_DEB_ARCH" +] \ No newline at end of file From da00f9e41bcad7c5a0b8eab6e98ac15b7888f572 Mon Sep 17 00:00:00 2001 From: Cat Core Date: Wed, 7 May 2025 18:39:38 +0200 Subject: [PATCH 6/9] Update to also build cli --- .github/workflows/publish.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 874ec0c..ccded70 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -103,6 +103,14 @@ jobs: - uses: Swatinem/rust-cache@v2 - run: rustup target add aarch64-apple-darwin - run: rustup target add x86_64-apple-darwin + # Build the CLI only binary + - run: cargo build --no-default-features --release --target universal2-apple-darwin + - name: Rename CLI Binaries + run: | + mv "target/aarch64-apple-darwin/release/ornithe-installer-rs" "target/aarch64-apple-darwin/release/ornithe-installer-rs-cli.bin" + mv "target/x86_64-apple-darwin/release/ornithe-installer-rs" "target/x86_64-apple-darwin/release/ornithe-installer-rs-cli.bin" + mv "target/universal2-apple-darwin/release/ornithe-installer-rs" "target/universal2-apple-darwin/release/ornithe-installer-rs-cli.bin" + # Regular build with GUI - run: cargo build --release --target universal2-apple-darwin - name: Rename Binaries run: | @@ -169,6 +177,10 @@ jobs: with: key: linux-cross - run: cargo install cross --git https://github.com/cross-rs/cross + # Build the CLI only binary + - run: cross build --no-default-features --release --target ${{ matrix.target }} + - run: mv "target/${{ matrix.target }}/release/ornithe-installer-rs" "target/${{ matrix.target }}/release/ornithe-installer-rs-cli.bin" + # Regular build with GUI - run: cross build --release --target ${{ matrix.target }} - run: mv "target/${{ matrix.target }}/release/ornithe-installer-rs" "target/${{ matrix.target }}/release/ornithe-installer-rs.bin" - uses: actions/upload-artifact@v4 From 5b9fb28d04d3cb9459bea0e2faa212760ec97a93 Mon Sep 17 00:00:00 2001 From: Cat Core Date: Wed, 7 May 2025 21:37:06 +0200 Subject: [PATCH 7/9] Add cross compilation to build workflow --- .github/workflows/build.yml | 88 ++++++++++++++++++++++++++++++----- .github/workflows/publish.yml | 4 +- 2 files changed, 79 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8fb9902..03aae13 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,21 +14,32 @@ jobs: build: strategy: matrix: - build: [linux, windows, mac] + build: [linux-x86_64, windows-x86, windows-x86_64, windows-aarch64] include: - - build: linux + - build: linux-x86_64 os: ubuntu-latest - rust: "stable" - - build: windows + target: x86_64-unknown-linux-gnu + - build: windows-x86 os: windows-latest - rust: "stable" - - build: mac - os: macos-latest - rust: "stable" + target: i686-pc-windows-msvc + msvc_arch: amd64_x86 + - build: windows-x86_64 + os: windows-latest + target: x86_64-pc-windows-msvc + msvc_arch: amd64 + - build: windows-aarch64 + os: windows-latest + target: aarch64-pc-windows-msvc + msvc_arch: amd64_arm64 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 + - name: Install C toolchain (Windows) + if: runner.os == 'Windows' + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ matrix.msvc_arch }} - name: Install packages (Linux) if: runner.os == 'Linux' uses: awalsh128/cache-apt-pkgs-action@v1.4.3 @@ -39,12 +50,13 @@ jobs: - name: Install Rust uses: dtolnay/rust-toolchain@stable with: - toolchain: ${{ matrix.rust }} + toolchain: stable - uses: Swatinem/rust-cache@v2 + - run: rustup target add ${{ matrix.target }} - name: Build - run: cargo build --verbose + run: cargo build --verbose --target ${{ matrix.target }} - name: Build release binary - run: cargo build --release + run: cargo build --release --target ${{ matrix.target }} - name: Upload a Build Artifact uses: actions/upload-artifact@v4 with: @@ -53,3 +65,57 @@ jobs: target/**/ornithe-installer-rs* !target/**/ornithe-installer-rs.d !target/**/build/ + build_macos: + runs-on: ubuntu-latest + container: ghcr.io/rust-cross/cargo-zigbuild:0.20 + steps: + - uses: actions/checkout@v4 + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + - run: rustup target add aarch64-apple-darwin + - run: rustup target add x86_64-apple-darwin + - name: Build + run: cargo build --verbose --target universal2-apple-darwin + - name: Build release binary + run: cargo build --release --target universal2-apple-darwin + - name: Upload a Build Artifact + uses: actions/upload-artifact@v4 + with: + name: CI builds (macos) + path: | + target/**/ornithe-installer-rs* + !target/**/ornithe-installer-rs.d + !target/**/build/ + build_linux_cross: + strategy: + matrix: + include: + - build: linux-aarch64 + target: aarch64-unknown-linux-gnu + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + with: + toolchain: stable + - uses: Swatinem/rust-cache@v2 + with: + key: linux-cross + - run: cargo install cross --git https://github.com/cross-rs/cross + - run: rustup target add ${{ matrix.target }} + - name: Build + run: cross build --verbose --target ${{ matrix.target }} + - name: Build release binary + run: cross build --release --target ${{ matrix.target }} + - name: Upload a Build Artifact + uses: actions/upload-artifact@v4 + with: + name: CI builds (${{ matrix.build }}) + path: | + target/**/ornithe-installer-rs* + !target/**/ornithe-installer-rs.d + !target/**/build/ \ No newline at end of file diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ccded70..fe0fbf6 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -119,9 +119,9 @@ jobs: mv "target/universal2-apple-darwin/release/ornithe-installer-rs" "target/universal2-apple-darwin/release/ornithe-installer-rs.bin" - uses: actions/upload-artifact@v4 with: - name: Artifacts ${{ matrix.target }} + name: Artifacts macos path: | - target/${{ matrix.target }}/release/ornithe-installer-rs* + target/**/release/ornithe-installer-rs* !target/**/ornithe-installer-rs.d !target/**/build/ - run: ./gradlew publish --stacktrace From f6c248b172fb23ff292391151a40eb0cffebc7ef Mon Sep 17 00:00:00 2001 From: Cat Core Date: Wed, 7 May 2025 22:28:35 +0200 Subject: [PATCH 8/9] Fix macos build --- .github/workflows/build.yml | 4 ++-- .github/workflows/publish.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 03aae13..a3b4549 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -78,9 +78,9 @@ jobs: - run: rustup target add aarch64-apple-darwin - run: rustup target add x86_64-apple-darwin - name: Build - run: cargo build --verbose --target universal2-apple-darwin + run: cargo zigbuild --verbose --target universal2-apple-darwin - name: Build release binary - run: cargo build --release --target universal2-apple-darwin + run: cargo zigbuild --release --target universal2-apple-darwin - name: Upload a Build Artifact uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index fe0fbf6..50a7669 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -104,14 +104,14 @@ jobs: - run: rustup target add aarch64-apple-darwin - run: rustup target add x86_64-apple-darwin # Build the CLI only binary - - run: cargo build --no-default-features --release --target universal2-apple-darwin + - run: cargo zigbuild --no-default-features --release --target universal2-apple-darwin - name: Rename CLI Binaries run: | mv "target/aarch64-apple-darwin/release/ornithe-installer-rs" "target/aarch64-apple-darwin/release/ornithe-installer-rs-cli.bin" mv "target/x86_64-apple-darwin/release/ornithe-installer-rs" "target/x86_64-apple-darwin/release/ornithe-installer-rs-cli.bin" mv "target/universal2-apple-darwin/release/ornithe-installer-rs" "target/universal2-apple-darwin/release/ornithe-installer-rs-cli.bin" # Regular build with GUI - - run: cargo build --release --target universal2-apple-darwin + - run: cargo zigbuild --release --target universal2-apple-darwin - name: Rename Binaries run: | mv "target/aarch64-apple-darwin/release/ornithe-installer-rs" "target/aarch64-apple-darwin/release/ornithe-installer-rs.bin" From 7f0cd06fd05eee8f59cbdd00273e57031b4f97ea Mon Sep 17 00:00:00 2001 From: Cat Core Date: Wed, 7 May 2025 22:33:42 +0200 Subject: [PATCH 9/9] Improve matrix element names --- .github/workflows/build.yml | 1 + .github/workflows/publish.yml | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a3b4549..4adea51 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -92,6 +92,7 @@ jobs: build_linux_cross: strategy: matrix: + build: [linux-aarch64] include: - build: linux-aarch64 target: aarch64-unknown-linux-gnu diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 50a7669..99806a8 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -13,6 +13,7 @@ jobs: publish: strategy: matrix: + build: [linux-x86_64, windows-x86, windows-x86_64, windows-aarch64] include: - build: linux-x86_64 os: ubuntu-latest @@ -157,6 +158,7 @@ jobs: publish_linux_cross: strategy: matrix: + build: [linux-aarch64] include: - build: linux-aarch64 target: aarch64-unknown-linux-gnu