ci(sdk): reorder xcode setup action (#821) #53
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
# | |
# Copyright Avast Software. All Rights Reserved. | |
# | |
# SPDX-License-Identifier: Apache-2.0 | |
# | |
name: "wallet-sdk release" | |
env: | |
GO_VERSION: '1.22' | |
on: | |
push: | |
tags: | |
- '*' | |
jobs: | |
PublishAndroidSDKRelease: | |
runs-on: macos-latest | |
timeout-minutes: 30 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
lfs: true | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Build Custom GO | |
run: | | |
cd .. | |
git clone https://go.googlesource.com/go goroot | |
cd goroot | |
git checkout go1.22.2 | |
cp ../wallet-sdk/cmd/wallet-sdk-gomobile/gopatches/* ./ | |
git apply cmd_cgo__fix_unaligned_arguments_typedmemmove_crash_on_iOS.patch | |
cd src && ./all.bash | |
- name: Derive the new version | |
run: | | |
echo "new version" | |
NEW_VER=$(git describe --tags --always `git rev-list --tags --max-count=1`) | |
echo $NEW_VER | |
- name: Generate Binding | |
run: | | |
echo $PATH | |
echo ${{ github.workspace }} | |
echo ${GOPATH} | |
echo ${GOROOT} | |
export PATH=$GOPATH/bin:$PATH | |
echo $PATH | |
which go | |
go install golang.org/x/mobile/cmd/gomobile@latest | |
gomobile init | |
NEW_VERSION=$NEW_VER GIT_REV=$(git rev-parse HEAD) BUILD_TIME=$(date) make generate-android-bindings | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GOPATH: /Users/runner/work/wallet-sdk/goroot | |
- name: Upload Android bindings to GitHub Actions Artifacts | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: android-binding | |
path: ./cmd/wallet-sdk-gomobile/bindings/android | |
- name: Publish | |
run: | | |
export USER=$USER | |
export TOKEN=$TOKEN | |
export ANDROID_GROUP_ID=dev.trustbloc | |
export ANDROID_ARTIFACT_ID=vc-wallet-sdk | |
TAG=$(git describe --tags --always `git rev-list --tags --max-count=1`) | |
export ANDROID_VERSION=$TAG | |
export PROJECT_PKG_REPO=https://maven.pkg.github.com/trustbloc/wallet-sdk | |
echo $ANDROID_VERSION | |
gradle publish | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
USER: ${{ secrets.CR_USER }} | |
TOKEN: ${{ secrets.CR_PAT }} | |
PublishIosSDKRelease: | |
needs: [ PublishAndroidSDKRelease ] | |
runs-on: macos-latest | |
timeout-minutes: 40 | |
permissions: | |
contents: write | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
lfs: true | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Build Custom GO | |
run: | | |
cd .. | |
git clone https://go.googlesource.com/go goroot | |
cd goroot | |
git checkout go1.22.2 | |
cp ../wallet-sdk/cmd/wallet-sdk-gomobile/gopatches/* ./ | |
git apply cmd_cgo__fix_unaligned_arguments_typedmemmove_crash_on_iOS.patch | |
cd src && ./all.bash | |
- name: Derive the new version | |
run: | | |
echo "new version" | |
NEW_VER=$(git describe --tags --always `git rev-list --tags --max-count=1`) | |
echo "NEW_VERSION=$NEW_VER-swift-pm" >> $GITHUB_ENV | |
echo $NEW_VER | |
- uses: maxim-lobanov/setup-xcode@v1 | |
with: | |
xcode-version: latest-stable | |
- name: Generate Binding | |
run: | | |
echo $PATH | |
echo ${{ github.workspace }} | |
echo ${GOPATH} | |
echo ${GOROOT} | |
export PATH=$GOPATH/bin:$PATH | |
echo $PATH | |
which go | |
go install golang.org/x/mobile/cmd/gomobile@latest | |
gomobile init | |
NEW_VERSION=$NEW_VER GIT_REV=$(git rev-parse HEAD) BUILD_TIME=$(date) make generate-ios-bindings | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GOPATH: /Users/runner/work/wallet-sdk/goroot | |
- name: Upload iOS bindings to GitHub Actions Artifacts | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: ios-binding | |
path: ./cmd/wallet-sdk-gomobile/bindings/ios | |
- name: Zip walletsdk framework | |
run: | | |
cd ./cmd/wallet-sdk-gomobile/bindings/ios | |
zip -r -X walletsdk.xcframework.zip walletsdk.xcframework | |
- name: Clone walletsdk release repository | |
uses: actions/checkout@v4 | |
with: | |
repository: trustbloc/wallet-sdk | |
ref: swift-pm | |
path: ios | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and commit walletsdk xcframework package | |
run: | | |
cp -r ./cmd/wallet-sdk-gomobile/bindings/ios/walletsdk.xcframework.zip ./ios/walletsdk.xcframework.zip | |
cd ios/ | |
ls -lrt | |
echo "calculate new checksum" | |
NEW_CHECKSUM=$(swift package compute-checksum $FRAMEWORK_NAME.xcframework.zip) | |
echo "moduleName=$FRAMEWORK_NAME version=$NEW_VERSION checksum=$NEW_CHECKSUM" | |
echo "replace name module information in package manifest" | |
sed -E -i '' 's/let moduleName = ".+"/let moduleName = "'$FRAMEWORK_NAME\"/ Package.swift | |
echo "replace version information in package manifest" | |
sed -E -i '' 's/let version = ".+"/let version = "'$NEW_VERSION\"/ Package.swift | |
echo "replace checksum information in package manifest" | |
sed -E -i '' 's/let checksum = ".+"/let checksum = "'$NEW_CHECKSUM\"/ Package.swift | |
echo "Package.swift content file after update" | |
cat Package.swift | |
echo "git commit all without framework and push" | |
git status | |
git add Package.swift | |
git commit -m "New $FRAMEWORK_NAME version $NEW_VERSION" | |
git push | |
shell: bash | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
FRAMEWORK_NAME: walletsdk | |
NEW_VERSION: '${{ env.NEW_VERSION }}' | |
- name: Tag and Release new version Swift package | |
uses: softprops/action-gh-release@v1 | |
with: | |
draft: false | |
tag_name : ${{ env.NEW_VERSION }} | |
repository : trustbloc/wallet-sdk | |
target_commitish : swift-pm | |
files: | | |
ios/walletsdk.xcframework.zip | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |