Skip to content

Merge pull request #113 from getlipa/feature/update-honey-badger-v1.2.1 #32

Merge pull request #113 from getlipa/feature/update-honey-badger-v1.2.1

Merge pull request #113 from getlipa/feature/update-honey-badger-v1.2.1 #32

Workflow file for this run

name: Deploy a new release
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref }}
cancel-in-progress: true
on:
push:
tags:
- 'v*.*.*'
jobs:
cross-compile-ios:
name: cross-compile-ios
runs-on: macos-latest
strategy:
matrix:
target: [ x86_64-apple-ios, aarch64-apple-ios, aarch64-apple-ios-sim ]
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
- name: Build target
uses: actions-rs/cargo@v1
with:
use-cross: false
command: build
args: --release --target ${{ matrix.target }}
- name: Upload library binaries
uses: actions/upload-artifact@master
with:
path: target/${{ matrix.target }}/release/libuniffi_lipabusinesslib.a
name: build-${{ matrix.target }}
- name: Upload header file
uses: actions/upload-artifact@master
with:
path: bindings/swift/lipabusinesslibFFI.h
name: header-file
- name: Upload bindings file
uses: actions/upload-artifact@master
with:
path: bindings/swift/lipabusinesslib.swift
name: bindings-file-ios
cross-compile-android:
name: cross-compile-android
runs-on: ubuntu-latest
strategy:
matrix:
target: [ aarch64-linux-android, armv7-linux-androideabi, i686-linux-android ]
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Install rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: ${{ matrix.target }}
- name: Build target
uses: actions-rs/cargo@v1
with:
use-cross: true
command: build
args: --release --target ${{ matrix.target }}
- name: Upload library binaries
uses: actions/upload-artifact@master
with:
path: target/${{ matrix.target }}/release/libuniffi_lipabusinesslib.so
name: build-${{ matrix.target }}
- name: Upload bindings file
uses: actions/upload-artifact@master
with:
path: bindings/kotlin/uniffi/lipabusinesslib/lipabusinesslib.kt
name: bindings-file-android
lipo-ios:
name: lipo-ios
needs: [ cross-compile-ios, cross-compile-android ]
runs-on: macos-latest
steps:
- name: Download x86 bin
uses: actions/download-artifact@master
with:
path: target/x86_64-apple-ios/release
name: build-x86_64-apple-ios
- name: Download aarch64 bin
uses: actions/download-artifact@master
with:
path: target/aarch64-apple-ios/release
name: build-aarch64-apple-ios
- name: Download aarch64sim bin
uses: actions/download-artifact@master
with:
path: target/aarch64-apple-ios-sim/release
name: build-aarch64-apple-ios-sim
- name: Package simulator binaries
run: |
mkdir -p target/universal/release
lipo -create -output target/universal/release/libuniffi_lipabusinesslib_simulator.a \
target/aarch64-apple-ios-sim/release/libuniffi_lipabusinesslib.a \
target/x86_64-apple-ios/release/libuniffi_lipabusinesslib.a
- name: Upload universal binary
uses: actions/upload-artifact@master
with:
path: target/universal/release/libuniffi_lipabusinesslib_simulator.a
name: build-ios-simulator-universal
deploy-ios:
name: deploy-ios
needs: lipo-ios
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set env
run: |
echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
raw=$(git branch -r --contains ${{ github.ref }})
branch=${raw##*/}
echo "BRANCH=$branch" >> $GITHUB_ENV
- uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.LIPA_BOT_IOS_DEPLOY_KEY }}
- name: Import bot's GPG key for signing commits
id: import-gpg
uses: crazy-max/ghaction-import-gpg@v4
with:
gpg_private_key: ${{ secrets.LIPA_BOT_GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.LIPA_BOT_GPG_PASSPHRASE }}
git_config_global: true
git_user_signingkey: true
git_commit_gpgsign: true
- name: Download aarch64 bin
uses: actions/download-artifact@master
with:
path: target/aarch64-apple-ios/release
name: build-aarch64-apple-ios
- name: Download simulator universal bin
uses: actions/download-artifact@master
with:
path: target/universal/release
name: build-ios-simulator-universal
- name: Download header file
uses: actions/download-artifact@master
with:
path: bindings/swift/
name: header-file
- name: Download bindings file
uses: actions/download-artifact@master
with:
path: bindings/swift/
name: bindings-file-ios
- name: Create xcframework
run: |
git clone [email protected]:getlipa/lipa-business-lib-swift.git
cp bindings/swift/lipabusinesslibFFI.h lipa-business-lib-swift/lipabusinesslibFFI.xcframework/ios-arm64/lipabusinesslibFFI.framework/Headers/lipabusinesslibFFI.h
cp bindings/swift/lipabusinesslibFFI.h lipa-business-lib-swift/lipabusinesslibFFI.xcframework/ios-arm64_x86_64-simulator/lipabusinesslibFFI.framework/Headers/lipabusinesslibFFI.h
cp target/aarch64-apple-ios/release/libuniffi_lipabusinesslib.a lipa-business-lib-swift/lipabusinesslibFFI.xcframework/ios-arm64/lipabusinesslibFFI.framework/lipabusinesslibFFI
cp target/universal/release/libuniffi_lipabusinesslib_simulator.a lipa-business-lib-swift/lipabusinesslibFFI.xcframework/ios-arm64_x86_64-simulator/lipabusinesslibFFI.framework/lipabusinesslibFFI
cd lipa-business-lib-swift
zip -9 -r lipabusinesslibFFI.xcframework.zip lipabusinesslibFFI.xcframework
- name: Upload xcframework zip
uses: actions/upload-artifact@master
with:
path: lipa-business-lib-swift/lipabusinesslibFFI.xcframework.zip
name: lipabusinesslibFFI.xcframework
- name: Push to target repo
env:
GITHUB_TOKEN: ${{ secrets.LIPA_BOT_ACCESS_TOKEN }}
run: |
cd lipa-business-lib-swift
git config --global user.email "[email protected]"
git config --global user.name "lipa Bot"
cp ../bindings/swift/lipabusinesslib.swift Sources/LipaBusinessLib/LipaBusinessLib.swift
cp Package.swift.template Package.swift
shasum -a 256 lipabusinesslibFFI.xcframework.zip | sed 's/ .*//' > checksum
sed -i "s/to_replace_release_version/${{ env.RELEASE_VERSION }}/g" Package.swift
sed -i "s/to_replace_zip_checksum/$(cat checksum)/g" Package.swift
git add Package.swift
git add Sources/LipaBusinessLib/LipaBusinessLib.swift
git commit -m "This commit was created automatically by the lipa bot"
git tag -a ${{ env.RELEASE_VERSION }} HEAD -m "This tag was created automatically by the lipa bot."
git push
git push --tag
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.LIPA_BOT_ACCESS_TOKEN }}
if: ${{ env.BRANCH == 'main' }}
run: |
cd lipa-business-lib-swift
gh release create ${{ env.RELEASE_VERSION }} \
lipabusinesslibFFI.xcframework.zip \
--title "${{ env.RELEASE_VERSION }}" \
--notes "This release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-business-lib"
- name: Create pre-release
env:
GITHUB_TOKEN: ${{ secrets.LIPA_BOT_ACCESS_TOKEN }}
if: ${{ env.BRANCH != 'main' }}
run: |
cd lipa-business-lib-swift
gh release create ${{ env.RELEASE_VERSION }} \
lipabusinesslibFFI.xcframework.zip \
--title "${{ env.RELEASE_VERSION }}" \
--notes "This pre-release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-business-lib" \
--prerelease
deploy-android:
name: deploy-android
needs: lipo-ios
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set env
run: |
echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
raw=$(git branch -r --contains ${{ github.ref }})
branch=${raw##*/}
echo "BRANCH=$branch" >> $GITHUB_ENV
- uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.LIPA_BOT_ANDROID_DEPLOY_KEY }}
- name: Import bot's GPG key for signing commits
id: import-gpg
uses: crazy-max/ghaction-import-gpg@v4
with:
gpg_private_key: ${{ secrets.LIPA_BOT_GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.LIPA_BOT_GPG_PASSPHRASE }}
git_config_global: true
git_user_signingkey: true
git_commit_gpgsign: true
- name: Download aarch64 bin
uses: actions/download-artifact@master
with:
path: target/aarch64-linux-android/release
name: build-aarch64-linux-android
- name: Download armv7 bin
uses: actions/download-artifact@master
with:
path: target/armv7-linux-androideabi/release
name: build-armv7-linux-androideabi
- name: Download i686 bin
uses: actions/download-artifact@master
with:
path: target/i686-linux-android/release
name: build-i686-linux-android
- name: Download bindings file
uses: actions/download-artifact@master
with:
path: bindings/kotlin/uniffi/lipabusinesslib
name: bindings-file-android
- name: Push to target repo
run: |
git clone [email protected]:getlipa/lipa-business-lib-android.git
cd lipa-business-lib-android
git config --global user.email "[email protected]"
git config --global user.name "lipa Bot"
cp ../bindings/kotlin/uniffi/lipabusinesslib/lipabusinesslib.kt LipaBusinessLib/src/main/java/com/getlipa/lipabusinesslib/lipabusinesslib.kt
mkdir -p jniLibs/arm64
mkdir -p jniLibs/arm64-v8a
mkdir -p jniLibs/armeabi
mkdir -p jniLibs/armeabi-v7a
mkdir -p jniLibs/x86
cp ../target/aarch64-linux-android/release/libuniffi_lipabusinesslib.so jniLibs/arm64
cp ../target/aarch64-linux-android/release/libuniffi_lipabusinesslib.so jniLibs/arm64-v8a
cp ../target/armv7-linux-androideabi/release/libuniffi_lipabusinesslib.so jniLibs/armeabi
cp ../target/armv7-linux-androideabi/release/libuniffi_lipabusinesslib.so jniLibs/armeabi-v7a
cp ../target/i686-linux-android/release/libuniffi_lipabusinesslib.so jniLibs/x86
zip -r jniLibs.zip jniLibs
shasum -a 256 jniLibs.zip | sed 's/ .*//' > checksum
cp jitpack.yml.template jitpack.yml
sed -i "s/to_replace_release_version/${{ env.RELEASE_VERSION }}/g" jitpack.yml
sed -i "s/to_replace_zip_checksum/$(cat checksum)/g" jitpack.yml
git add LipaBusinessLib/src/main/java/com/getlipa/lipabusinesslib/lipabusinesslib.kt
git add jitpack.yml
git commit -m "This commit was created automatically by the lipa bot"
git tag -a ${{ env.RELEASE_VERSION }} HEAD -m "This tag was created automatically by the lipa bot."
git push
git push --tag
- name: Create release
env:
GITHUB_TOKEN: ${{ secrets.LIPA_BOT_ACCESS_TOKEN }}
if: ${{ env.BRANCH == 'main' }}
run: |
cd lipa-business-lib-android
gh release create ${{ env.RELEASE_VERSION }} \
jniLibs.zip \
--title "${{ env.RELEASE_VERSION }}" \
--notes "This release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-business-lib"
- name: Create pre-release
env:
GITHUB_TOKEN: ${{ secrets.LIPA_BOT_ACCESS_TOKEN }}
if: ${{ env.BRANCH != 'main' }}
run: |
cd lipa-business-lib-android
gh release create ${{ env.RELEASE_VERSION }} \
jniLibs.zip \
--title "${{ env.RELEASE_VERSION }}" \
--notes "This pre-release was created automatically by the lipa bot. For more information, please access the corresponding release in https://github.com/getlipa/lipa-business-lib" \
--prerelease
- name: Trigger JitPack build
run: |
curl -s -m 30 https://jitpack.io/com/github/getlipa/lipa-business-lib-android/${{ env.RELEASE_VERSION }} || true