Add pre-built ppc64le and aarch64 linux binaries #68
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: deploy | |
on: | |
push: | |
tags: | |
- 'v*.*.*' | |
jobs: | |
windows-binaries: | |
strategy: | |
matrix: | |
conf: | |
- msvc | |
- gnu | |
include: | |
- conf: msvc | |
toolchain: stable | |
- conf: gnu | |
toolchain: stable-x86_64-pc-windows-gnu | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install stable | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
profile: minimal | |
toolchain: ${{ matrix.toolchain }} | |
override: true | |
- name: Build cargo-c | |
run: | | |
cargo build --release | |
- name: Strip gnu binaries | |
if: matrix.conf == 'gnu' | |
run: | | |
strip "target\release\cargo-capi.exe" ` | |
"target\release\cargo-cbuild.exe" ` | |
"target\release\cargo-cinstall.exe" | |
- name: Create zip | |
run: | | |
cd target/release | |
7z a ../../cargo-c-windows-${{ matrix.conf }}.zip ` | |
"cargo-capi.exe" ` | |
"cargo-cbuild.exe" ` | |
"cargo-cinstall.exe" | |
- name: Upload binaries | |
uses: actions/upload-artifact@v2 | |
with: | |
name: cargo-c-windows-${{ matrix.conf }}-binaries | |
path: cargo-c-windows-${{ matrix.conf }}.zip | |
linux-binaries: | |
strategy: | |
matrix: | |
target: | |
- x86_64-unknown-linux-musl | |
- powerpc64le-unknown-linux-gnu | |
- aarch64-unknown-linux-gnu | |
include: | |
- target: x86_64-unknown-linux-musl | |
sdk: musl-tools | |
cc: musl-gcc | |
- target: powerpc64le-unknown-linux-gnu | |
sdk: crossbuild-essential-ppc64el | |
cc: powerpc64le-linux-gnu-gcc | |
- target: aarch64-unknown-linux-gnu | |
sdk: crossbuild-essential-arm64 | |
cc: aarch64-linux-gnu-gcc | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install $${{ matrix.sdk }} | |
run: | | |
sudo apt-get install ${{ matrix.sdk }} | |
- name: Install Rust toolchain | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
profile: minimal | |
toolchain: stable | |
target: ${{ matrix.target }} | |
override: true | |
- name: Build cargo-c | |
run: | | |
mkdir .cargo | |
echo -e "[target.${{ matrix.target }}]\nlinker=\"${{ matrix.cc }}\"" > .cargo/config | |
cargo build --target ${{ matrix.target }} --release --features vendored-openssl | |
- name: Create zip | |
run: | | |
cd target/${{ matrix.target }}/release | |
strip cargo-capi cargo-cbuild cargo-cinstall | |
tar -czvf $GITHUB_WORKSPACE/cargo-c-${{ matrix.target }}.tar.gz \ | |
cargo-capi \ | |
cargo-cbuild \ | |
cargo-cinstall | |
- name: Upload binaries | |
uses: actions/upload-artifact@v2 | |
with: | |
name: cargo-c-${{ matrix.target }}-binaries | |
path: cargo-c-${{ matrix.target }}.tar.gz | |
macos-binaries: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install stable | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Build cargo-c | |
run: | | |
cargo build --features=vendored-openssl --release | |
- name: Create zip | |
run: | | |
cd target/release | |
strip cargo-capi cargo-cbuild cargo-cinstall | |
zip $GITHUB_WORKSPACE/cargo-c-macos.zip \ | |
cargo-capi \ | |
cargo-cbuild \ | |
cargo-cinstall | |
- name: Upload binaries | |
uses: actions/upload-artifact@v2 | |
with: | |
name: cargo-c-macos-binaries | |
path: cargo-c-macos.zip | |
deploy: | |
needs: [windows-binaries, linux-binaries, macos-binaries] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Install stable | |
uses: dtolnay/rust-toolchain@stable | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Download zip files | |
uses: actions/download-artifact@v2 | |
- name: Create Cargo.lock | |
run: | | |
cargo update | |
- name: Create a release | |
uses: softprops/action-gh-release@v1 | |
with: | |
files: | | |
Cargo.lock | |
cargo-c-linux-binaries/cargo-c-linux.tar.gz | |
cargo-c-macos-binaries/cargo-c-macos.zip | |
cargo-c-windows-msvc-binaries/cargo-c-windows-msvc.zip | |
cargo-c-windows-gnu-binaries/cargo-c-windows-gnu.zip | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |