Upgrade gradle #33
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 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-v8a | |
mkdir -p jniLibs/armeabi-v7a | |
mkdir -p jniLibs/x86 | |
cp ../target/aarch64-linux-android/release/libuniffi_lipabusinesslib.so jniLibs/arm64-v8a | |
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 |