Skip to content

Feature/expose multiop winsdk #3659

Feature/expose multiop winsdk

Feature/expose multiop winsdk #3659

Workflow file for this run

name: GoSDK & WasmSDK
concurrency:
group: "sdk-${{ github.ref }}"
cancel-in-progress: true
on:
push:
branches: [ master, staging, qa ]
tags:
- 'v*.*.*'
pull_request:
workflow_dispatch:
inputs:
version:
description: '0Chain SDK version'
required: true
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
jobs:
build:
name: sdk-build
runs-on: [self-hosted, arc-runner]
steps:
- name: Set up Go 1.18
uses: actions/setup-go@v2
with:
go-version: ^1.18
- name: Checkout
uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get -y install build-essential nghttp2 libnghttp2-dev libssl-dev wget
- name: Setup Build
id: setup_build
run: |
tag=$(echo ${GITHUB_REF#refs/tags/})
echo ${tag}
if [[ -n "${{github.event.inputs.version}}" ]]; then
echo "> 0Chain: trigger from workflow_dispatch"
echo "::set-output name=PR::true"
gosdk="{\"gosdk\":\"${{github.event.inputs.version}}\"}"
echo "::set-output name=SDK::${gosdk}"
elif [[ ${tag} = v*\.*\.* ]] ; then
echo "> 0Chain: trigger from git event"
echo "::set-output name=PR::true"
gosdk="{\"gosdk\":\"${tag}\"}"
echo "::set-output name=SDK::${gosdk}"
# upload zcn.wasm on release
echo "::set-output name=RELEASE::true"
echo "::set-output name=TAG::${tag}"
fi
- name: Build
run: make wasm-build
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
if: steps.setup_build.outputs.RELEASE == 'true'
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: zcn.wasm
tag: ${{ steps.setup_build.outputs.TAG }}
overwrite: true
file_glob: true
- name: 'Upload Artifact'
uses: actions/upload-artifact@v3
with:
name: zcn.wasm
path: zcn.wasm
outputs:
PR: ${{ steps.setup_build.outputs.PR }}
SDK: ${{ steps.setup_build.outputs.SDK }}
TAG: ${{ steps.setup_build.outputs.TAG }}
release:
name: sdk-release
needs: build
if: needs.build.outputs.PR == 'true'
runs-on: [self-hosted, build]
steps:
- name: start to create pr
run: |
echo "GoSDK & WebAssembly SDK should be upgraded"
create-pr:
name: create-pr
strategy:
fail-fast: false
max-parallel: 1
matrix:
repo: [0nft, 0box, 0dns, zwalletcli, zboxcli, blobber, zs3server, s3-migration, token_bridge_authserver ]
needs: [ build, release ]
runs-on: [self-hosted, build]
steps:
- name: Create PR on ${{ matrix.repo }}
uses: convictional/trigger-workflow-and-wait@v1.3.0
if: needs.build.outputs.PR == 'true'
with:
owner: 0chain
repo: ${{ matrix.repo }}
ref: staging
github_token: ${{ secrets.GOSDK }}
workflow_file_name: gosdk.yml
inputs: ${{ needs.build.outputs.SDK }}
propagate_failure: true
trigger_workflow: true
wait_workflow: true