name: Publish Flutter Package 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 flutter package (MAJOR.MINOR.BUILD) (no v prefix)' required: true type: string publish: description: 'value indicating whether to commit/tag a release.' required: true type: boolean default: true secrets: REPO_SSH_KEY: description: 'ssh key to commit to the breez-liquid-sdk-flutter repository' required: true jobs: build-tag-release: runs-on: ubuntu-latest steps: - name: Checkout breez-liquid-sdk-flutter repo uses: actions/checkout@v3 with: repository: breez/breez-liquid-sdk-flutter ssh-key: ${{ secrets.REPO_SSH_KEY }} fetch-depth: 0 path: dist - name: Checkout breez-liquid-sdk repo uses: actions/checkout@v3 with: repository: ${{ inputs.repository || github.repository }} ref: ${{ inputs.ref || github.sha }} path: build - uses: subosito/flutter-action@v2 with: channel: 'stable' - name: Copy package files working-directory: dist run: | rm -r ios rm -r android rm -r lib cp -r ../build/lib/bindings/langs/flutter/ios . mv ios/breez_liquid_sdk.podspec.production ios/breez_liquid_sdk.podspec cp -r ../build/lib/bindings/langs/flutter/android . mv langs/android/build.gradle.production langs/android/build.gradle cp -r ../build/lib/bindings/langs/flutter/lib . cp ../build/lib/bindings/langs/flutter/pubspec.yaml . cp ../build/lib/bindings/langs/flutter/pubspec.lock . - name: Copy docs working-directory: dist run: | cp ../build/lib/bindings/langs/flutter/README.pub.md README.md || true cp ../build/lib/bindings/langs/flutter/CHANGELOG.md . || true - uses: actions/download-artifact@v3 with: name: bindings-swift path: dist/ios/bindings-swift/Sources/BreezLiquidSDK/ - name: Set package version working-directory: dist run: | sed -i.bak -e 's/version:.*/version: ${{ inputs.package-version }}/' pubspec.yaml sed -i.bak -e "s/^version .*/version '${{ inputs.package-version }}'/" langs/android/build.gradle sed -i.bak -e "s/^tag_version = .*/tag_version = '${{ inputs.package-version }}'/" ios/breez_liquid_sdk.podspec rm pubspec.yaml.bak rm langs/android/build.gradle.bak rm ios/breez_liquid_sdk.podspec.bak - name: Archive flutter release uses: actions/upload-artifact@v3 with: name: breez-liquid-sdk-flutter-${{ inputs.package-version || github.sha }} path: | dist/* !dist/.git - name: Tag the Flutter package working-directory: dist if: ${{ inputs.publish }} run: | git config --global user.email github-actions@github.com git config --global user.name github-actions git add . git commit -m "Update Breez SDK Flutter package to version v${{ inputs.package-version }}" git push git tag v${{ inputs.package-version }} -m "v${{ inputs.package-version }}" git push --tags