diff --git a/.cargo/config b/.cargo/config new file mode 100644 index 00000000..ff7f7580 --- /dev/null +++ b/.cargo/config @@ -0,0 +1,2 @@ +[target.aarch64-unknown-linux-gnu] +linker = "aarch64-linux-gnu-gcc" \ No newline at end of file diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 2b72ced8..0ba78690 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -20,6 +20,13 @@ jobs: env: {}, targetPath: "target/release/", } + - { + os: "ubuntu-latest", + arch: "aarch64", + extension: "", + env: { OPENSSL_DIR: "/usr/local/openssl-aarch64" }, + targetPath: "target/aarch64-unknown-linux-gnu/release/", + } - { os: "macos-latest", arch: "amd64", @@ -68,15 +75,38 @@ jobs: default: true components: clippy, rustfmt + - name: setup for cross-compile builds + if: matrix.config.arch == 'aarch64' && matrix.config.os == 'ubuntu-latest' + run: | + sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu + cd /tmp + git clone https://github.com/openssl/openssl + cd openssl + git checkout OpenSSL_1_1_1l + sudo mkdir -p $OPENSSL_DIR + ./Configure linux-aarch64 --prefix=$OPENSSL_DIR --openssldir=$OPENSSL_DIR shared + make CC=aarch64-linux-gnu-gcc + sudo make install + rustup target add aarch64-unknown-linux-gnu + - name: Install latest Rust stable toolchain uses: actions-rs/toolchain@v1 - if: matrix.config.arch == 'aarch64' + if: matrix.config.arch == 'aarch64' && matrix.config.os == 'macos-latest' with: toolchain: stable default: true components: clippy, rustfmt target: aarch64-apple-darwin + - name: Install latest Rust stable toolchain + uses: actions-rs/toolchain@v1 + if: matrix.config.arch == 'aarch64' && matrix.config.os == 'ubuntu-latest' + with: + toolchain: stable + default: true + components: clippy, rustfmt + target: aarch64-unknown-linux-gnu + - name: build release uses: actions-rs/cargo@v1 if: matrix.config.arch != 'aarch64' @@ -86,11 +116,18 @@ jobs: - name: build release uses: actions-rs/cargo@v1 - if: matrix.config.arch == 'aarch64' + if: matrix.config.arch == 'aarch64' && matrix.config.os == 'macos-latest' with: command: build args: "--all-features --release --target aarch64-apple-darwin" + - name: build release + uses: actions-rs/cargo@v1 + if: matrix.config.arch == 'aarch64' && matrix.config.os == 'ubuntu-latest' + with: + command: build + args: "--all-features --release --target aarch64-unknown-linux-gnu" + - name: package release assets shell: bash run: | @@ -125,7 +162,7 @@ jobs: cd bindle sha256sum * > checksums-${{ env.RELEASE_VERSION }}.txt - name: upload to azure - uses: bacongobbler/azure-blob-storage-upload@v2.0.0 + uses: bacongobbler/azure-blob-storage-upload@v2.0.1 with: source_dir: bindle container_name: releases diff --git a/deny.toml b/deny.toml index 9d69899d..4729e39e 100644 --- a/deny.toml +++ b/deny.toml @@ -78,6 +78,7 @@ unlicensed = "deny" allow = [ "LicenseRef-ring", "MPL-2.0", + "Unicode-DFS-2016" ] # List of explictly disallowed licenses # See https://spdx.org/licenses/ for list of possible licenses