update to 0.1.3 #1
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: releases | |
on: | |
push: | |
tags: | |
- v* | |
jobs: | |
build-bin-cross: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
target: | |
- x86_64-unknown-linux-musl | |
- aarch64-unknown-linux-musl | |
- x86_64-pc-windows-gnu | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: install rust toolchain | |
uses: hecrj/setup-rust-action@v1 | |
with: | |
rust-version: stable | |
- name: install deps | |
run: | | |
sudo apt update && sudo apt install llvm-dev libclang-dev clang libssl-dev pkg-config protobuf-compiler make -y | |
- name: install cross | |
run: | | |
cargo install cross | |
- name: build | |
run: | | |
export CFG_COMMIT_HASH=`git log --pretty=format:'%h' -n 1` | |
export CFG_COMMIT_DATE=`git log --format="%ci" -n 1` | |
./scripts/build_cross.sh ${{ matrix.target }} | |
- name: rename and compress artifacts | |
if: ${{ matrix.target == 'x86_64-pc-windows-gnu' }} | |
run: | | |
mv target/${{ matrix.target }}/release/leaf.exe leaf-${{ matrix.target }}.exe | |
- name: rename and compress artifacts | |
if: ${{ matrix.target != 'x86_64-pc-windows-gnu' }} | |
run: | | |
mv target/${{ matrix.target }}/release/leaf leaf-${{ matrix.target }} | |
- name: upload assets | |
if: ${{ matrix.target == 'x86_64-pc-windows-gnu' }} | |
uses: actions/upload-artifact@v2 | |
with: | |
name: leaf-${{ matrix.target }}.exe | |
path: leaf-${{ matrix.target }}.exe | |
- name: upload assets | |
if: ${{ matrix.target != 'x86_64-pc-windows-gnu' }} | |
uses: actions/upload-artifact@v2 | |
with: | |
name: leaf-${{ matrix.target }} | |
path: leaf-${{ matrix.target }} | |
build-bin-local: | |
strategy: | |
matrix: | |
os: [macos-latest] | |
include: | |
- os: macos-latest | |
target: x86_64-apple-darwin | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: install rust toolchain | |
uses: hecrj/setup-rust-action@v1 | |
with: | |
rust-version: nightly | |
- name: install llvm | |
if: ${{ matrix.os == 'macos-latest' }} | |
run: | | |
brew install llvm protobuf | |
- name: build | |
run: | | |
export CFG_COMMIT_HASH=`git log --pretty=format:'%h' -n 1` | |
export CFG_COMMIT_DATE=`git log --format="%ci" -n 1` | |
cargo build --release --target ${{ matrix.target }} -p leaf-bin | |
- name: rename and compress artifacts | |
run: | | |
mv target/${{ matrix.target }}/release/leaf leaf-${{ matrix.target }} | |
- name: upload assets | |
uses: actions/upload-artifact@v2 | |
with: | |
name: leaf-${{ matrix.target }} | |
path: leaf-${{ matrix.target }} | |
build-apple: | |
runs-on: macos-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: install rust | |
uses: hecrj/setup-rust-action@v1 | |
with: | |
rust-version: stable | |
- name: install toolchain | |
run: | | |
cargo install cbindgen | |
brew install llvm unzip protobuf | |
- name: build | |
run: | | |
./scripts/build_apple_xcframework.sh | |
- name: zip artifacts | |
run: | | |
mv target/apple/release/leaf.xcframework . | |
zip -r leaf.xcframework.zip leaf.xcframework | |
- name: upload assets | |
uses: actions/upload-artifact@v2 | |
with: | |
name: leaf.xcframework.zip | |
path: leaf.xcframework.zip | |
build-android: | |
runs-on: ubuntu-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: install rust | |
uses: hecrj/setup-rust-action@v1 | |
with: | |
rust-version: stable | |
- name: install toolchain | |
run: | | |
cargo install cbindgen | |
apt update && apt install -y make llvm-dev libclang-dev clang pkg-config unzip curl default-jdk build-essential | |
export ANDROID_HOME=/tmp/Android/sdk | |
export NDK_HOME=/tmp/Android/sdk/ndk/25.2.9519653 | |
export PATH=$ANDROID_HOME/cmdline-tools/bin:$PATH | |
cd /tmp/ | |
curl -OL https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip | |
unzip commandlinetools-linux-6858069_latest.zip | |
mkdir -p $ANDROID_HOME | |
mv cmdline-tools $ANDROID_HOME | |
yes | sdkmanager --sdk_root=$ANDROID_HOME --licenses | |
sdkmanager --sdk_root=$ANDROID_HOME "ndk;25.2.9519653" "platforms;android-21" | |
- name: build | |
run: | | |
export ANDROID_HOME=/tmp/Android/sdk | |
export NDK_HOME=/tmp/Android/sdk/ndk/25.2.9519653 | |
./scripts/build_android.sh | |
- name: zip artifacts | |
run: | | |
mv target/leaf-android-libs . | |
zip -r leaf-android-libs.zip leaf-android-libs | |
- name: upload assets | |
uses: actions/upload-artifact@v2 | |
with: | |
name: leaf-android-libs.zip | |
path: leaf-android-libs.zip | |
create-release: | |
needs: [build-bin-cross, build-bin-local, build-apple, build-android] | |
runs-on: macos-latest | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- name: Create Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.ref }} | |
release_name: Release ${{ github.ref }} | |
draft: false | |
prerelease: false | |
- name: create upload url file | |
run: | | |
echo -n "${{ steps.create_release.outputs.upload_url }}" > upload_url.txt | |
- name: persist upload url | |
uses: actions/upload-artifact@v2 | |
with: | |
name: upload_url.txt | |
path: ./upload_url.txt | |
release-bin: | |
needs: [create-release] | |
runs-on: macos-latest | |
strategy: | |
matrix: | |
target: | |
- x86_64-apple-darwin | |
- x86_64-unknown-linux-musl | |
- aarch64-unknown-linux-musl | |
- x86_64-pc-windows-gnu | |
steps: | |
- name: download upload url | |
uses: actions/download-artifact@v2 | |
with: | |
name: upload_url.txt | |
- name: get upload url | |
run: | | |
upload_url=`cat upload_url.txt` | |
echo "uploadurl=$upload_url" >> $GITHUB_ENV | |
- name: download asset | |
if: ${{ matrix.target != 'x86_64-pc-windows-gnu' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: leaf-${{ matrix.target }} | |
- name: download asset | |
if: ${{ matrix.target == 'x86_64-pc-windows-gnu' }} | |
uses: actions/download-artifact@v2 | |
with: | |
name: leaf-${{ matrix.target }}.exe | |
- name: zip artifacts | |
if: ${{ matrix.target != 'x86_64-pc-windows-gnu' }} | |
run: | | |
gzip leaf-${{ matrix.target }} | |
- name: zip artifacts | |
if: ${{ matrix.target == 'x86_64-pc-windows-gnu' }} | |
run: | | |
zip -9 leaf-${{ matrix.target }}.zip leaf-${{ matrix.target }}.exe | |
- name: upload asset | |
if: ${{ matrix.target != 'x86_64-pc-windows-gnu' }} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ env.uploadurl }} | |
asset_path: ./leaf-${{ matrix.target }}.gz | |
asset_name: leaf-${{ matrix.target }}.gz | |
asset_content_type: application/octet-stream | |
- name: upload asset | |
if: ${{ matrix.target == 'x86_64-pc-windows-gnu' }} | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ env.uploadurl }} | |
asset_path: ./leaf-${{ matrix.target }}.zip | |
asset_name: leaf-${{ matrix.target }}.zip | |
asset_content_type: application/octet-stream | |
release-mobile-libs: | |
needs: [create-release] | |
runs-on: macos-latest | |
steps: | |
- name: download upload url | |
uses: actions/download-artifact@v2 | |
with: | |
name: upload_url.txt | |
- name: get upload url | |
run: | | |
upload_url=`cat upload_url.txt` | |
echo "uploadurl=$upload_url" >> $GITHUB_ENV | |
- name: download asset | |
uses: actions/download-artifact@v2 | |
with: | |
name: leaf.xcframework.zip | |
- name: download asset | |
uses: actions/download-artifact@v2 | |
with: | |
name: leaf-android-libs.zip | |
- name: upload asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ env.uploadurl }} | |
asset_path: ./leaf.xcframework.zip | |
asset_name: leaf.xcframework.zip | |
asset_content_type: application/octet-stream | |
- name: upload asset | |
uses: actions/upload-release-asset@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ env.uploadurl }} | |
asset_path: ./leaf-android-libs.zip | |
asset_name: leaf-android-libs.zip | |
asset_content_type: application/octet-stream |