-
Notifications
You must be signed in to change notification settings - Fork 144
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: ios bindings update action (#886)
- Loading branch information
Showing
2 changed files
with
129 additions
and
85 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,129 @@ | ||
name: Build and Publish EZKL iOS SPM package | ||
|
||
on: | ||
push: | ||
tags: | ||
# Only support SemVer versioning tags | ||
- 'v[0-9]+.[0-9]+.[0-9]+' | ||
- '[0-9]+.[0-9]+.[0-9]+' | ||
|
||
jobs: | ||
build-and-update: | ||
runs-on: macos-latest | ||
env: | ||
EZKL_SWIFT_PACKAGE_REPO: github.com/zkonduit/ezkl-swift-package.git | ||
|
||
steps: | ||
- name: Checkout EZKL | ||
uses: actions/checkout@v3 | ||
|
||
- name: Extract TAG from github.ref_name | ||
run: | | ||
# github.ref_name is provided by GitHub Actions and contains the tag name directly. | ||
TAG="${{ github.ref_name }}" | ||
echo "Original TAG: $TAG" | ||
# Remove leading 'v' if present to match the Swift Package Manager version format. | ||
NEW_TAG=${TAG#v} | ||
echo "Stripped TAG: $NEW_TAG" | ||
echo "TAG=$NEW_TAG" >> $GITHUB_ENV | ||
- name: Install Rust (nightly) | ||
uses: actions-rs/toolchain@v1 | ||
with: | ||
toolchain: nightly | ||
override: true | ||
|
||
- name: Build EzklCoreBindings | ||
run: CONFIGURATION=release cargo run --bin ios_gen_bindings --features "ios-bindings uuid camino uniffi_bindgen" --no-default-features | ||
|
||
- name: Clone ezkl-swift-package repository | ||
run: | | ||
git clone https://${{ env.EZKL_SWIFT_PACKAGE_REPO }} | ||
- name: Copy EzklCoreBindings | ||
run: | | ||
rm -rf ezkl-swift-package/Sources/EzklCoreBindings | ||
cp -r build/EzklCoreBindings ezkl-swift-package/Sources/ | ||
- name: Copy Test Files | ||
run: | | ||
rm -rf ezkl-swift-package/Tests/EzklAssets/* | ||
cp tests/assets/kzg ezkl-swift-package/Tests/EzklAssets/kzg.srs | ||
cp tests/assets/input.json ezkl-swift-package/Tests/EzklAssets/input.json | ||
cp tests/assets/model.compiled ezkl-swift-package/Tests/EzklAssets/network.ezkl | ||
cp tests/assets/settings.json ezkl-swift-package/Tests/EzklAssets/settings.json | ||
- name: Check for changes | ||
id: check_changes | ||
run: | | ||
cd ezkl-swift-package | ||
if git diff --quiet Sources/EzklCoreBindings Tests/EzklAssets; then | ||
echo "no_changes=true" >> $GITHUB_OUTPUT | ||
else | ||
echo "no_changes=false" >> $GITHUB_OUTPUT | ||
fi | ||
- name: Set up Xcode environment | ||
if: steps.check_changes.outputs.no_changes == 'false' | ||
run: | | ||
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer | ||
sudo xcodebuild -license accept | ||
- name: Run Package Tests | ||
if: steps.check_changes.outputs.no_changes == 'false' | ||
run: | | ||
cd ezkl-swift-package | ||
xcodebuild test \ | ||
-scheme EzklPackage \ | ||
-destination 'platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5' \ | ||
-resultBundlePath ../testResults | ||
- name: Run Example App Tests | ||
if: steps.check_changes.outputs.no_changes == 'false' | ||
run: | | ||
cd ezkl-swift-package/Example | ||
xcodebuild test \ | ||
-project Example.xcodeproj \ | ||
-scheme EzklApp \ | ||
-destination 'platform=iOS Simulator,name=iPhone 15 Pro,OS=17.5' \ | ||
-parallel-testing-enabled NO \ | ||
-resultBundlePath ../../exampleTestResults \ | ||
-skip-testing:EzklAppUITests/EzklAppUITests/testButtonClicksInOrder | ||
- name: Setup Git | ||
run: | | ||
cd ezkl-swift-package | ||
git config user.name "GitHub Action" | ||
git config user.email "[email protected]" | ||
git remote set-url origin https://zkonduit:${EZKL_SWIFT_PACKAGE_REPO_TOKEN}@${{ env.EZKL_SWIFT_PACKAGE_REPO }} | ||
env: | ||
EZKL_SWIFT_PACKAGE_REPO_TOKEN: ${{ secrets.EZKL_PORTER_TOKEN }} | ||
|
||
- name: Commit and Push Changes | ||
if: steps.check_changes.outputs.no_changes == 'false' | ||
run: | | ||
cd ezkl-swift-package | ||
git add Sources/EzklCoreBindings Tests/EzklAssets | ||
git commit -m "Automatically updated EzklCoreBindings for EZKL" | ||
if ! git push origin; then | ||
echo "::error::Failed to push changes to ${{ env.EZKL_SWIFT_PACKAGE_REPO }}. Please ensure that EZKL_PORTER_TOKEN has the correct permissions." | ||
exit 1 | ||
fi | ||
- name: Tag the latest commit | ||
run: | | ||
cd ezkl-swift-package | ||
source $GITHUB_ENV | ||
# Tag the latest commit on the current branch | ||
if git rev-parse "$TAG" >/dev/null 2>&1; then | ||
echo "Tag $TAG already exists locally. Skipping tag creation." | ||
else | ||
git tag "$TAG" | ||
fi | ||
if ! git push origin "$TAG"; then | ||
echo "::error::Failed to push tag '$TAG' to ${{ env.EZKL_SWIFT_PACKAGE_REPO }}. Please ensure EZKL_PORTER_TOKEN has correct permissions." | ||
exit 1 | ||
fi |
This file was deleted.
Oops, something went wrong.