Skip to content

Create FUNDING.yml #171

Create FUNDING.yml

Create FUNDING.yml #171

name: Cross-compile Releases
on:
push:
branches: [ "main" ]
tags: [ "v*" ]
pull_request:
env:
CARGO_TERM_COLOR: always
jobs:
build:
name: Cross-compile for ${{ matrix.config.rust_target }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
# Unsupported targets are either
# 1. unsupported by Rust, `ring`, or `mio`, or
# 2. without `AtomicU64`.
matrix:
config:
- rust_target: aarch64-linux-android
- rust_target: aarch64-unknown-linux-gnu
- rust_target: aarch64-unknown-linux-musl
# - rust_target: arm-linux-androideabi (AtomicU64)
- rust_target: arm-unknown-linux-gnueabi
- rust_target: arm-unknown-linux-gnueabihf
- rust_target: arm-unknown-linux-musleabi
- rust_target: arm-unknown-linux-musleabihf
# - rust_target: armv5te-unknown-linux-gnueabi (AtomicU64)
# - rust_target: armv5te-unknown-linux-musleabi (AtomicU64)
- rust_target: armv7-linux-androideabi
- rust_target: armv7-unknown-linux-gnueabi
- rust_target: armv7-unknown-linux-gnueabihf
- rust_target: armv7-unknown-linux-musleabi
- rust_target: armv7-unknown-linux-musleabihf
# - rust_target: i586-unknown-linux-gnu (ring v1.17.8 SSE)
# - rust_target: i586-unknown-linux-musl (ring v1.17.8 SSE)
- rust_target: i686-unknown-freebsd # (crate `aws-lc-sys`)
- rust_target: i686-linux-android
- rust_target: i686-pc-windows-gnu # (crate `aws-lc-sys`)
- rust_target: i686-unknown-linux-gnu
- rust_target: i686-unknown-linux-musl
# - rust_target: mips-unknown-linux-gnu (crate `core`)
# - rust_target: mips-unknown-linux-musl (crate `core`)
# - rust_target: mips64-unknown-linux-gnuabi64 (crate `core`)
# - rust_target: mips64-unknown-linux-muslabi64 (crate `core`)
# - rust_target: mips64el-unknown-linux-gnuabi64 (crate `core`)
# - rust_target: mips64el-unknown-linux-muslabi64 (crate `core`)
# - rust_target: mipsel-unknown-linux-gnu (crate `core`)
# - rust_target: mipsel-unknown-linux-musl (crate `core`)
# - rust_target: powerpc-unknown-linux-gnu (AtomicU64)
- rust_target: powerpc64-unknown-linux-gnu
- rust_target: powerpc64le-unknown-linux-gnu
# - rust_target: riscv64gc-unknown-linux-gnu (cross#1423, crate `aws-lc-sys`)
- rust_target: s390x-unknown-linux-gnu
# - rust_target: sparc64-unknown-linux-gnu (ring support)
# - rust_target: sparcv9-sun-solaris (ring support)
# - rust_target: thumbv6m-none-eabi (crate `std`)
# - rust_target: thumbv7em-none-eabi (crate `std`)
# - rust_target: thumbv7em-none-eabihf (crate `std`)
# - rust_target: thumbv7m-none-eabi (crate `std`)
- rust_target: thumbv7neon-linux-androideabi
- rust_target: thumbv7neon-unknown-linux-gnueabihf
# - rust_target: thumbv8m.base-none-eabi (crate `core`)
# - rust_target: thumbv8m.main-none-eabi (crate `core`)
# - rust_target: thumbv8m.main-none-eabihf (crate `core`)
# - rust_target: wasm32-unknown-emscripten (mio support)
- rust_target: x86_64-linux-android
- rust_target: x86_64-pc-windows-gnu # (crate `aws-lc-sys`)
# - rust_target: x86_64-sun-solaris (Rust support)
- rust_target: x86_64-unknown-freebsd # (crate `aws-lc-sys`)
# - rust_target: x86_64-unknown-dragonfly (crate `core`)
- rust_target: x86_64-unknown-illumos # (bindgen)
- rust_target: x86_64-unknown-linux-gnu
- rust_target: x86_64-unknown-linux-musl
- rust_target: x86_64-unknown-netbsd # (crate `aws-lc-sys`)
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Install dependencies
run: cargo install cross --git https://github.com/cross-rs/cross
- name: Build release
run: cross build --release --target ${{ matrix.config.rust_target }} --features "${{ matrix.config.rust_features }}"
env:
CROSS_NO_WARNINGS: 0
- name: Upload binary
uses: actions/upload-artifact@v4
with:
name: penguin-${{ matrix.config.rust_target }}
path: |
target/${{ matrix.config.rust_target }}/release/penguin
target/${{ matrix.config.rust_target }}/release/penguin.exe