mirror of
https://github.com/aljazceru/breez-sdk-liquid.git
synced 2026-01-30 11:24:24 +01:00
* Publish flutter artifacts and package * Publish dart package * Add LICENCE * Force rm * Don't copy lock files * Fix output directory * Fix podspec name * Pass SWIFT_RELEASE_TOKEN * Fix overrides indentation * Update package version on CMake script Update example dependencies * Depend on dart & flutter packages from git on pubspec files * Correct repository links & add publish_to: 'none' * run just clean && just init * Update README.md * Download framework as part of prepare_command * Use wget, then fallback to curl * Remove redundant .zip suffix on the url * Fix release tag * Add v to tag replacement * Fix podspec version * Copy header file * Downgrade vm_service --------- Co-authored-by: Erdem Yerebasmaz <erdem@yerebasmaz.com>
356 lines
16 KiB
YAML
356 lines
16 KiB
YAML
name: Publish all packages
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
ref:
|
|
description: 'commit/tag/branch reference'
|
|
required: true
|
|
type: string
|
|
package-version:
|
|
description: 'version for the published package(s) (MAJOR.MINOR.BUILD)'
|
|
required: true
|
|
type: string
|
|
packages-to-publish:
|
|
description: 'array of packages to publish (remove what you do not want)'
|
|
required: true
|
|
type: string
|
|
default: '["csharp", "golang", "maven", "kotlin-multiplatform", "flutter", "react-native", "python", "swift"]'
|
|
csharp-ref:
|
|
description: 'optional commit/tag/branch reference for the C# project. Defaults to ref.'
|
|
required: false
|
|
type: string
|
|
use-dummy-binaries:
|
|
description: 'boolean indicating whether to use dummies for the sdk binaries. Default = false.'
|
|
required: false
|
|
type: boolean
|
|
default: false
|
|
publish:
|
|
description: 'boolean indicating whether packages should be published. true to publish. false to build only. Default = false.'
|
|
required: false
|
|
type: boolean
|
|
default: false
|
|
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 published package(s) (MAJOR.MINOR.BUILD)'
|
|
required: true
|
|
type: string
|
|
packages-to-publish:
|
|
description: 'array of packages to publish (remove what you do not want)'
|
|
required: true
|
|
type: string
|
|
default: '["csharp", "golang", "maven", "kotlin-multiplatform", "flutter", "react-native", "python", "swift"]'
|
|
csharp-ref:
|
|
description: 'optional commit/tag/branch reference for the C# project. Defaults to ref.'
|
|
required: false
|
|
type: string
|
|
use-dummy-binaries:
|
|
description: 'boolean indicating whether to use dummies for the sdk binaries. Default = false.'
|
|
required: false
|
|
type: boolean
|
|
default: false
|
|
|
|
jobs:
|
|
pre-setup:
|
|
name: Pre-setup
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
# These outputs mimic the inputs for the workflow.
|
|
# Their only purpose is to be able to test this workflow if you make
|
|
# changes that you won't want to commit to main yet.
|
|
# You can set these values manually, to test how the CI behaves with
|
|
# certain inputs.
|
|
repository: ${{ inputs.repository || github.repository }}
|
|
ref: ${{ inputs.ref || github.sha }}
|
|
csharp-package-version: ${{ (contains(fromJSON(inputs.packages-to-publish), 'csharp') && inputs.package-version) || '' }}
|
|
csharp-ref: ${{ inputs.csharp-ref || inputs.ref || github.sha }}
|
|
golang-package-version: ${{ (contains(fromJSON(inputs.packages-to-publish), 'golang') && inputs.package-version) || '' }}
|
|
maven-package-version: ${{ (contains(fromJSON(inputs.packages-to-publish), 'maven') && inputs.package-version) || ''}}
|
|
kotlin-multiplatform-package-version: ${{ (contains(fromJSON(inputs.packages-to-publish), 'kotlin-multiplatform') && inputs.package-version) || '' }}
|
|
flutter-package-version: ${{ (contains(fromJSON(inputs.packages-to-publish), 'flutter') && inputs.package-version) || '' }}
|
|
react-native-package-version: ${{ (contains(fromJSON(inputs.packages-to-publish), 'react-native') && inputs.package-version) || '' }}
|
|
python-package-version: ${{ (contains(fromJSON(inputs.packages-to-publish), 'python') && inputs.package-version) || '' }}
|
|
swift-package-version: ${{ (contains(fromJSON(inputs.packages-to-publish), 'swift') && inputs.package-version) || '' }}
|
|
use-dummy-binaries: ${{ inputs.use-dummy-binaries }}
|
|
publish: ${{ inputs.publish }}
|
|
steps:
|
|
- run: echo "set pre-setup output variables"
|
|
|
|
setup:
|
|
name: Setup
|
|
needs: pre-setup
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
# Careful, a boolean input is not a boolean output. A boolean input is
|
|
# actually a boolean, but these outputs are strings. All the boolean
|
|
# checks in this file have the format `boolean == 'true'`. So feel free
|
|
# to set these variables here to `true` or `false`
|
|
# (e.g. bindings-windows: true) if you want to test something.
|
|
repository: ${{ needs.pre-setup.outputs.repository }}
|
|
bindings-windows: ${{ !!needs.pre-setup.outputs.csharp-package-version || !!needs.pre-setup.outputs.golang-package-version || !!needs.pre-setup.outputs.python-package-version }}
|
|
bindings-darwin: ${{ !!needs.pre-setup.outputs.csharp-package-version || !!needs.pre-setup.outputs.golang-package-version || !!needs.pre-setup.outputs.python-package-version || !!needs.pre-setup.outputs.swift-package-version }}
|
|
bindings-linux: ${{ !!needs.pre-setup.outputs.csharp-package-version || !!needs.pre-setup.outputs.golang-package-version || !!needs.pre-setup.outputs.python-package-version }}
|
|
bindings-flutter: ${{ !!needs.pre-setup.outputs.flutter-package-version }}
|
|
bindings-android: ${{ !!needs.pre-setup.outputs.kotlin-multiplatform-package-version || !!needs.pre-setup.outputs.maven-package-version || !!needs.pre-setup.outputs.golang-package-version }}
|
|
bindings-ios: ${{ !!needs.pre-setup.outputs.kotlin-multiplatform-package-version || !!needs.pre-setup.outputs.maven-package-version || !!needs.pre-setup.outputs.swift-package-version }}
|
|
kotlin: ${{ !!needs.pre-setup.outputs.kotlin-multiplatform-package-version || !!needs.pre-setup.outputs.maven-package-version || !!needs.pre-setup.outputs.flutter-package-version }}
|
|
swift: ${{ !!needs.pre-setup.outputs.flutter-package-version || !!needs.pre-setup.outputs.swift-package-version }}
|
|
python: ${{ !!needs.pre-setup.outputs.python-package-version }}
|
|
csharp: ${{ !!needs.pre-setup.outputs.csharp-package-version }}
|
|
golang: ${{ !!needs.pre-setup.outputs.golang-package-version }}
|
|
maven: ${{ !!needs.pre-setup.outputs.maven-package-version }}
|
|
kotlin-multiplatform: ${{ !!needs.pre-setup.outputs.kotlin-multiplatform-package-version }}
|
|
flutter: ${{ !!needs.pre-setup.outputs.flutter-package-version }}
|
|
react-native: ${{ !!needs.pre-setup.outputs.react-native-package-version }}
|
|
ref: ${{ needs.pre-setup.outputs.ref }}
|
|
csharp-package-version: ${{ needs.pre-setup.outputs.csharp-package-version || '0.0.2' }}
|
|
csharp-ref: ${{ needs.pre-setup.outputs.csharp-ref }}
|
|
golang-package-version: ${{ needs.pre-setup.outputs.golang-package-version || '0.0.2' }}
|
|
maven-package-version: ${{ needs.pre-setup.outputs.maven-package-version || '0.0.2' }}
|
|
kotlin-multiplatform-package-version: ${{ needs.pre-setup.outputs.kotlin-multiplatform-package-version || '0.0.2' }}
|
|
flutter-package-version: ${{ needs.pre-setup.outputs.flutter-package-version || '0.0.2' }}
|
|
react-native-package-version: ${{ needs.pre-setup.outputs.react-native-package-version || '0.0.2' }}
|
|
python-package-version: ${{ needs.pre-setup.outputs.python-package-version || '0.0.2' }}
|
|
swift-package-version: ${{ needs.pre-setup.outputs.swift-package-version || '0.0.2' }}
|
|
publish: ${{ needs.pre-setup.outputs.publish }}
|
|
use-dummy-binaries: ${{ needs.pre-setup.outputs.use-dummy-binaries }}
|
|
steps:
|
|
- run: echo "set setup output variables"
|
|
|
|
build-bindings-windows:
|
|
needs: setup
|
|
if: ${{ needs.setup.outputs.bindings-windows == 'true' }}
|
|
uses: ./.github/workflows/build-bindings-windows.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
use-dummy-binaries: ${{ needs.setup.outputs.use-dummy-binaries == 'true' }}
|
|
|
|
build-bindings-darwin:
|
|
needs: setup
|
|
if: ${{ needs.setup.outputs.bindings-darwin == 'true' }}
|
|
uses: ./.github/workflows/build-bindings-darwin.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
use-dummy-binaries: ${{ needs.setup.outputs.use-dummy-binaries == 'true' }}
|
|
|
|
build-bindings-linux:
|
|
needs: setup
|
|
if: ${{ needs.setup.outputs.bindings-linux == 'true' }}
|
|
uses: ./.github/workflows/build-bindings-linux.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
use-dummy-binaries: ${{ needs.setup.outputs.use-dummy-binaries == 'true' }}
|
|
|
|
build-bindings-flutter:
|
|
needs: setup
|
|
if: ${{ needs.setup.outputs.bindings-flutter == 'true' }}
|
|
uses: ./.github/workflows/build-bindings-flutter.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
use-dummy-binaries: ${{ needs.setup.outputs.use-dummy-binaries == 'true' }}
|
|
|
|
build-bindings-android:
|
|
needs: setup
|
|
if: ${{ needs.setup.outputs.bindings-android == 'true' }}
|
|
uses: ./.github/workflows/build-bindings-android.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
use-dummy-binaries: ${{ needs.setup.outputs.use-dummy-binaries == 'true' }}
|
|
|
|
build-bindings-ios:
|
|
needs: setup
|
|
if: ${{ needs.setup.outputs.bindings-ios == 'true' }}
|
|
uses: ./.github/workflows/build-bindings-ios.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
use-dummy-binaries: ${{ needs.setup.outputs.use-dummy-binaries == 'true' }}
|
|
|
|
build-language-bindings:
|
|
needs: setup
|
|
uses: ./.github/workflows/build-language-bindings.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
kotlin: ${{ needs.setup.outputs.kotlin == 'true'}}
|
|
csharp: ${{ needs.setup.outputs.csharp == 'true'}}
|
|
golang: ${{ needs.setup.outputs.golang == 'true'}}
|
|
python: ${{ needs.setup.outputs.python == 'true'}}
|
|
swift: ${{ needs.setup.outputs.swift == 'true'}}
|
|
|
|
# publish-csharp:
|
|
# needs:
|
|
# - setup
|
|
# - build-bindings-windows
|
|
# - build-bindings-darwin
|
|
# - build-bindings-linux
|
|
# - build-language-bindings
|
|
# if: ${{ needs.setup.outputs.csharp == 'true' }}
|
|
# uses: ./.github/workflows/publish-csharp.yml
|
|
# with:
|
|
# repository: ${{ needs.setup.outputs.repository }}
|
|
# ref: ${{ needs.setup.outputs.csharp-ref }}
|
|
# package-version: ${{ needs.setup.outputs.csharp-package-version }}
|
|
# publish: ${{ needs.setup.outputs.publish == 'true' }}
|
|
# skip-tests: true
|
|
# secrets:
|
|
# NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
|
|
|
|
publish-dart:
|
|
needs:
|
|
- setup
|
|
if: ${{ needs.setup.outputs.flutter == 'true' }}
|
|
uses: ./.github/workflows/publish-dart.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
package-version: ${{ needs.setup.outputs.flutter-package-version }}
|
|
publish: ${{ needs.setup.outputs.publish == 'true' }}
|
|
secrets:
|
|
REPO_SSH_KEY: ${{ secrets.REPO_SSH_KEY }}
|
|
#
|
|
# publish-golang:
|
|
# needs:
|
|
# - setup
|
|
# - build-bindings-android
|
|
# - build-bindings-windows
|
|
# - build-bindings-darwin
|
|
# - build-bindings-linux
|
|
# - build-language-bindings
|
|
# if: ${{ needs.setup.outputs.golang == 'true' }}
|
|
# uses: ./.github/workflows/publish-golang.yml
|
|
# with:
|
|
# ref: ${{ needs.setup.outputs.ref }}
|
|
# package-version: ${{ needs.setup.outputs.golang-package-version }}
|
|
# publish: ${{ needs.setup.outputs.publish == 'true' }}
|
|
# secrets:
|
|
# REPO_SSH_KEY: ${{ secrets.REPO_SSH_KEY }}
|
|
|
|
publish-maven:
|
|
needs:
|
|
- setup
|
|
- build-bindings-android
|
|
- build-language-bindings
|
|
if: ${{ needs.setup.outputs.maven == 'true' }}
|
|
uses: ./.github/workflows/publish-android.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
package-version: ${{ needs.setup.outputs.maven-package-version }}
|
|
publish: ${{ needs.setup.outputs.publish == 'true' }}
|
|
secrets:
|
|
BREEZ_MVN_USERNAME: ${{ secrets.BREEZ_MVN_USERNAME }}
|
|
BREEZ_MVN_PASSWORD: ${{ secrets.BREEZ_MVN_PASSWORD }}
|
|
|
|
publish-kotlin-multiplatform:
|
|
needs:
|
|
- setup
|
|
- build-bindings-android
|
|
- build-bindings-ios
|
|
- build-language-bindings
|
|
if: ${{ needs.setup.outputs.kotlin-multiplatform == 'true' }}
|
|
uses: ./.github/workflows/publish-kotlin-multiplatform.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
package-version: ${{ needs.setup.outputs.kotlin-multiplatform-package-version }}
|
|
publish: ${{ needs.setup.outputs.publish == 'true' }}
|
|
secrets:
|
|
BREEZ_MVN_USERNAME: ${{ secrets.BREEZ_MVN_USERNAME }}
|
|
BREEZ_MVN_PASSWORD: ${{ secrets.BREEZ_MVN_PASSWORD }}
|
|
|
|
publish-flutter:
|
|
needs:
|
|
- setup
|
|
- build-bindings-flutter
|
|
- publish-dart
|
|
if: ${{ needs.setup.outputs.flutter == 'true' }}
|
|
uses: ./.github/workflows/publish-flutter.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
package-version: ${{ needs.setup.outputs.flutter-package-version }}
|
|
publish: ${{ needs.setup.outputs.publish == 'true' }}
|
|
secrets:
|
|
REPO_SSH_KEY: ${{ secrets.REPO_SSH_KEY }}
|
|
SWIFT_RELEASE_TOKEN: ${{ secrets.SWIFT_RELEASE_TOKEN }}
|
|
|
|
# react native version x.y.z will at runtime require
|
|
# ios and android packages x.y.z being published already.
|
|
publish-react-native-no-wait:
|
|
needs:
|
|
- setup
|
|
if: ${{ needs.setup.outputs.swift != 'true' && needs.setup.outputs.react-native == 'true' }}
|
|
uses: ./.github/workflows/publish-react-native.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
package-version: ${{ needs.setup.outputs.react-native-package-version }}
|
|
publish: ${{ needs.setup.outputs.publish == 'true' }}
|
|
secrets:
|
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
|
|
# react native version x.y.z will at runtime require
|
|
# ios and android packages x.y.z being published already.
|
|
publish-react-native-wait:
|
|
needs:
|
|
- setup
|
|
- publish-swift
|
|
if: ${{ needs.setup.outputs.swift == 'true' && needs.setup.outputs.react-native == 'true' }}
|
|
uses: ./.github/workflows/publish-react-native.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
package-version: ${{ needs.setup.outputs.react-native-package-version }}
|
|
publish: ${{ needs.setup.outputs.publish == 'true' }}
|
|
secrets:
|
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
|
|
publish-python:
|
|
needs:
|
|
- setup
|
|
- build-bindings-darwin
|
|
- build-bindings-linux
|
|
- build-bindings-windows
|
|
- build-language-bindings
|
|
if: ${{ needs.setup.outputs.python == 'true' }}
|
|
uses: ./.github/workflows/publish-python.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
package-version: ${{ needs.setup.outputs.python-package-version }}
|
|
publish: ${{ needs.setup.outputs.publish == 'true' }}
|
|
secrets:
|
|
PYPI_API_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
|
|
|
publish-swift:
|
|
needs:
|
|
- setup
|
|
- build-bindings-darwin
|
|
- build-bindings-ios
|
|
- build-language-bindings
|
|
if: ${{ needs.setup.outputs.swift == 'true' }}
|
|
uses: ./.github/workflows/publish-swift.yml
|
|
with:
|
|
repository: ${{ needs.setup.outputs.repository }}
|
|
ref: ${{ needs.setup.outputs.ref }}
|
|
package-version: ${{ needs.setup.outputs.swift-package-version }}
|
|
publish: ${{ needs.setup.outputs.publish == 'true' }}
|
|
secrets:
|
|
REPO_SSH_KEY: ${{ secrets.REPO_SSH_KEY }}
|
|
SWIFT_RELEASE_TOKEN: ${{ secrets.SWIFT_RELEASE_TOKEN }}
|
|
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}
|