mirror of
https://github.com/aljazceru/breez-sdk-liquid.git
synced 2026-01-26 17:34:30 +01:00
153 lines
6.9 KiB
YAML
153 lines
6.9 KiB
YAML
name: Publish Swift Bindings
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
repository:
|
|
description: 'sdk repository, defaults to current repository'
|
|
required: false
|
|
type: string
|
|
ref:
|
|
description: 'commit/tag/branch reference'
|
|
required: true
|
|
type: string
|
|
package-version:
|
|
description: 'version for the python package (MAJOR.MINOR.BUILD)'
|
|
required: true
|
|
type: string
|
|
publish:
|
|
description: 'value indicating whether to publish to pypi.'
|
|
required: true
|
|
type: boolean
|
|
default: false
|
|
secrets:
|
|
REPO_SSH_KEY:
|
|
description: 'ssh key to commit to the breez-sdk-liquid-swift repository'
|
|
required: true
|
|
SWIFT_RELEASE_TOKEN:
|
|
description: 'github token to release to the breez-sdk-liquid-swift repository'
|
|
required: true
|
|
COCOAPODS_TRUNK_TOKEN:
|
|
description: 'cocoapods trunk token'
|
|
required: true
|
|
|
|
jobs:
|
|
build-swift-package:
|
|
runs-on: macOS-13
|
|
steps:
|
|
- name: Checkout breez-sdk-liquid repo
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: ${{ inputs.repository || github.repository }}
|
|
ref: ${{ inputs.ref || github.sha }}
|
|
path: build
|
|
|
|
- name: Checkout breez-sdk-liquid-swift repo
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: breez/breez-sdk-liquid-swift
|
|
ref: main
|
|
ssh-key: ${{ secrets.REPO_SSH_KEY }}
|
|
fetch-depth: 0
|
|
path: dist
|
|
|
|
- name: Download swift bindings
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: bindings-swift
|
|
path: swift
|
|
|
|
- name: Download aarch64-apple-ios
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: bindings-aarch64-apple-ios
|
|
path: aarch64-apple-ios
|
|
|
|
- name: Download ios-universal-sim
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: bindings-ios-universal-sim
|
|
path: ios-universal-sim
|
|
|
|
- name: Download darwin-universal
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
name: bindings-darwin-universal
|
|
path: darwin-universal
|
|
|
|
- name: Copy swift bindings
|
|
run: |
|
|
mkdir -p build/lib/bindings/langs/swift/Sources/BreezSDKLiquid
|
|
cp swift/BreezSDKLiquid.swift build/lib/bindings/langs/swift/Sources/BreezSDKLiquid/BreezSDKLiquid.swift
|
|
cp swift/breez_sdk_liquidFFI.h build/lib/bindings/langs/swift/breez_sdk_liquidFFI.xcframework/ios-arm64/breez_sdk_liquidFFI.framework/Headers
|
|
cp swift/breez_sdk_liquidFFI.h build/lib/bindings/langs/swift/breez_sdk_liquidFFI.xcframework/ios-arm64_x86_64-simulator/breez_sdk_liquidFFI.framework/Headers
|
|
cp swift/breez_sdk_liquidFFI.h build/lib/bindings/langs/swift/breez_sdk_liquidFFI.xcframework/macos-arm64_x86_64/breez_sdk_liquidFFI.framework/Headers
|
|
cp aarch64-apple-ios/libbreez_sdk_liquid_bindings.a build/lib/bindings/langs/swift/breez_sdk_liquidFFI.xcframework/ios-arm64/breez_sdk_liquidFFI.framework/breez_sdk_liquidFFI
|
|
cp ios-universal-sim/libbreez_sdk_liquid_bindings.a build/lib/bindings/langs/swift/breez_sdk_liquidFFI.xcframework/ios-arm64_x86_64-simulator/breez_sdk_liquidFFI.framework/breez_sdk_liquidFFI
|
|
cp darwin-universal/libbreez_sdk_liquid_bindings.a build/lib/bindings/langs/swift/breez_sdk_liquidFFI.xcframework/macos-arm64_x86_64/breez_sdk_liquidFFI.framework/breez_sdk_liquidFFI
|
|
|
|
- name: Set plist versions
|
|
working-directory: build/lib/bindings/langs/swift/breez_sdk_liquidFFI.xcframework
|
|
run: |
|
|
SHORT_VERSION=$(echo "${{ inputs.package-version }}" | grep -Eo '^(\d.\d.\d)')
|
|
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $SHORT_VERSION" ios-arm64/breez_sdk_liquidFFI.framework/Info.plist
|
|
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $SHORT_VERSION" ios-arm64_x86_64-simulator/breez_sdk_liquidFFI.framework/Info.plist
|
|
/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $SHORT_VERSION" macos-arm64_x86_64/breez_sdk_liquidFFI.framework/Info.plist
|
|
|
|
- name: Compress XCFramework
|
|
working-directory: build/lib/bindings/langs/swift
|
|
run: |
|
|
zip -9 -r breez_sdk_liquidFFI.xcframework.zip breez_sdk_liquidFFI.xcframework
|
|
echo "XCF_CHECKSUM=`swift package compute-checksum breez_sdk_liquidFFI.xcframework.zip`" >> $GITHUB_ENV
|
|
|
|
- name: Remove dist Sources
|
|
working-directory: dist
|
|
run: git rm -r Sources
|
|
|
|
- name: Update Swift Package definition
|
|
working-directory: build/lib/bindings/langs/swift
|
|
run: |
|
|
sed 's#.binaryTarget(name: "breez_sdk_liquidFFI", path: "./breez_sdk_liquidFFI.xcframework"),#.binaryTarget(name: "breez_sdk_liquidFFI", url: "https://github.com/breez/breez-sdk-liquid-swift/releases/download/${{ inputs.package-version || '0.0.1' }}/breez_sdk_liquidFFI.xcframework.zip", checksum: "${{ env.XCF_CHECKSUM }}"),#;/.testTarget(name: "BreezSDKLiquidTests", dependencies: \["BreezSDKLiquid"\]),/d' Package.swift > ../../../../../dist/Package.swift
|
|
cp -r Sources ../../../../../dist
|
|
|
|
- name: Update Cocoapods definitions
|
|
working-directory: dist
|
|
run: |
|
|
sed -i '' 's#^.\{2\}spec.version.*$# spec.version = "${{ inputs.package-version || '0.0.1' }}"#' breez_sdk_liquidFFI.podspec
|
|
sed -i '' 's#^.\{2\}spec.version.*$# spec.version = "${{ inputs.package-version || '0.0.1' }}"#' BreezSDKLiquid.podspec
|
|
|
|
- name: Tag the Swift bindings
|
|
if: ${{ inputs.publish }}
|
|
working-directory: dist
|
|
run: |
|
|
git config --global user.name "SDK release tagger"
|
|
git config --global user.email "no-reply@breez.technology"
|
|
git add Package.swift
|
|
git add Sources
|
|
git add breez_sdk_liquidFFI.podspec
|
|
git add BreezSDKLiquid.podspec
|
|
git commit -m "Update Swift bindings to version ${{ inputs.package-version || '0.0.1' }}"
|
|
git push
|
|
git tag ${{ inputs.package-version || '0.0.1' }} -m "${{ inputs.package-version || '0.0.1' }}"
|
|
git push --tags
|
|
|
|
- name: Release and attach XCFramework binary artifact
|
|
if: ${{ inputs.publish }}
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
repository: breez/breez-sdk-liquid-swift
|
|
files: |
|
|
build/lib/bindings/langs/swift/breez_sdk_liquidFFI.xcframework.zip
|
|
tag_name: ${{ inputs.package-version || '0.0.1' }}
|
|
generate_release_notes: false
|
|
token: ${{ secrets.SWIFT_RELEASE_TOKEN }}
|
|
prerelease: true
|
|
|
|
- name: Push update to Cocoapods trunk
|
|
if: ${{ inputs.publish }}
|
|
working-directory: dist
|
|
env:
|
|
COCOAPODS_TRUNK_TOKEN: ${{secrets.COCOAPODS_TRUNK_TOKEN}}
|
|
run: |
|
|
pod trunk push breez_sdk_liquidFFI.podspec --allow-warnings
|
|
pod trunk push BreezSDKLiquid.podspec --allow-warnings --synchronous
|