name: Build and Release
on:
push:
tags:
- 'v*'
jobs:
build-linux-x86:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: x86_64-unknown-linux-gnu
override: true
- name: Build
run: |
cargo build --release --target x86_64-unknown-linux-gnu
# Create archives for both binaries
tar -czf anypay-server-linux-x86_64.tar.gz -C target/x86_64-unknown-linux-gnu/release anypay-server
tar -czf anypay-client-linux-x86_64.tar.gz -C target/x86_64-unknown-linux-gnu/release anypay-client
- name: Create Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
anypay-server-linux-x86_64.tar.gz
anypay-client-linux-x86_64.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-linux-aarch64:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: aarch64-unknown-linux-gnu
override: true
- name: Install ARM64 toolchain
run: |
sudo dpkg --add-architecture arm64
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
sudo apt-get install -y libssl-dev:arm64 pkg-config
echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
echo "CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
echo "CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++" >> $GITHUB_ENV
echo "PKG_CONFIG_SYSROOT_DIR=/usr/lib/aarch64-linux-gnu" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig" >> $GITHUB_ENV
echo "OPENSSL_DIR=/usr/lib/aarch64-linux-gnu" >> $GITHUB_ENV
echo "OPENSSL_INCLUDE_DIR=/usr/include/aarch64-linux-gnu" >> $GITHUB_ENV
- name: Build
run: |
cargo build --release --target aarch64-unknown-linux-gnu
# Create archives for both binaries
tar -czf anypay-server-linux-aarch64.tar.gz -C target/aarch64-unknown-linux-gnu/release anypay-server
tar -czf anypay-client-linux-aarch64.tar.gz -C target/aarch64-unknown-linux-gnu/release anypay-client
- name: Create Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
anypay-server-linux-aarch64.tar.gz
anypay-client-linux-aarch64.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-macos:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: x86_64-apple-darwin
override: true
- name: Build
run: |
cargo build --release
# Create archives for both binaries
tar -czf anypay-server-macos-x86_64.tar.gz -C target/release anypay-server
tar -czf anypay-client-macos-x86_64.tar.gz -C target/release anypay-client
- name: Create Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
anypay-server-macos-x86_64.tar.gz
anypay-client-macos-x86_64.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}