123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- name: Create release with node binaries
- on:
- workflow_dispatch:
- inputs:
- name:
- description: 'Release name (v9.3.0 - Antioch)'
- required: true
- tag:
- description: 'Tag (v9.3.0)'
- required: true
- env:
- REPOSITORY: joystream/node
- jobs:
- build-mac-binary:
- runs-on: macos-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- - id: compute_shasum
- name: Compute runtime code shasum
- run: |
- export RUNTIME_CODE_SHASUM=`scripts/runtime-code-shasum.sh`
- echo "::set-output name=shasum::${RUNTIME_CODE_SHASUM}"
- - name: Run Setup
- run: |
- ./setup.sh
- - name: Build binaries
- run: |
- yarn cargo-build
- - name: Tar the binary
- run: |
- tar czvf joystream-node-macos.tar.gz -C ./target/release joystream-node
- - name: Temporarily save node binary
- uses: actions/upload-artifact@v2
- with:
- name: joystream-node-macos-${{ steps.compute_shasum.outputs.shasum }}
- path: joystream-node-macos.tar.gz
- retention-days: 1
- build-rpi-binary:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- - id: compute_shasum
- name: Compute runtime code shasum
- run: |
- export RUNTIME_CODE_SHASUM=`scripts/runtime-code-shasum.sh`
- echo "::set-output name=shasum::${RUNTIME_CODE_SHASUM}"
- - name: Run Setup
- run: |
- ./setup.sh
- - name: Build binaries
- run: |
- export WORKSPACE_ROOT=`cargo metadata --offline --no-deps --format-version 1 | jq .workspace_root -r`
- sudo chmod a+w $WORKSPACE_ROOT
- sudo chmod -R a+w $HOME/.cargo/registry
- ./scripts/raspberry-cross-build.sh
- - name: Tar the binary
- run: |
- tar czvf joystream-node-rpi.tar.gz -C ./target/arm-unknown-linux-gnueabihf/release joystream-node
- - name: Temporarily save node binary
- uses: actions/upload-artifact@v2
- with:
- name: joystream-node-rpi-${{ steps.compute_shasum.outputs.shasum }}
- path: joystream-node-rpi.tar.gz
- retention-days: 1
- create-release:
- runs-on: ubuntu-latest
- needs: [build-mac-binary, build-rpi-binary]
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- - id: compute_shasum
- name: Compute runtime code shasum
- run: |
- export RUNTIME_CODE_SHASUM=`scripts/runtime-code-shasum.sh`
- echo "::set-output name=shasum::${RUNTIME_CODE_SHASUM}"
- - id: extract_binaries
- name: Copy binaries & wasm file from docker images
- run: |
- IMAGE=${{ env.REPOSITORY }}:${{ steps.compute_shasum.outputs.shasum }}
- docker run -d --entrypoint tail --name temp-container-joystream-node $IMAGE-amd64 -f /dev/null
- RESULT=$(docker exec temp-container-joystream-node b2sum -l 256 runtime.compact.wasm | awk '{print $1}')
- VERSION_AND_COMMIT=$(docker exec temp-container-joystream-node /joystream/node --version | awk '{print $2}' | cut -d- -f -2)
- echo "::set-output name=blob_hash::${RESULT}"
- echo "::set-output name=version_and_commit::${VERSION_AND_COMMIT}"
- docker cp temp-container-joystream-node:/joystream/runtime.compact.wasm ./joystream_runtime_${{ github.event.inputs.tag }}.wasm
- docker cp temp-container-joystream-node:/joystream/node ./joystream-node
- tar -czvf joystream-node-$VERSION_AND_COMMIT-x86_64-linux-gnu.tar.gz joystream-node
- docker rm --force temp-container-joystream-node
- docker cp $(docker create --rm $IMAGE-arm64):/joystream/node ./joystream-node
- tar -czvf joystream-node-$VERSION_AND_COMMIT-arm64-linux-gnu.tar.gz joystream-node
- docker cp $(docker create --rm $IMAGE-arm):/joystream/node ./joystream-node
- tar -czvf joystream-node-$VERSION_AND_COMMIT-armv7-linux-gnu.tar.gz joystream-node
- - name: Retrieve saved MacOS binary
- uses: actions/download-artifact@v2
- with:
- name: joystream-node-macos-${{ steps.compute_shasum.outputs.shasum }}
- - name: Retrieve saved RPi binary
- uses: actions/download-artifact@v2
- with:
- name: joystream-node-rpi-${{ steps.compute_shasum.outputs.shasum }}
- - name: Rename MacOS and RPi tar
- run: |
- mv joystream-node-macos.tar.gz joystream-node-${{ steps.extract_binaries.outputs.version_and_commit }}-x86_64-macos.tar.gz
- mv joystream-node-rpi.tar.gz joystream-node-${{ steps.extract_binaries.outputs.version_and_commit }}-rpi.tar.gz
- - name: Release
- uses: softprops/action-gh-release@v1
- with:
- files: |
- *.tar.gz
- *.wasm
- tag_name: ${{ github.event.inputs.tag }}
- name: ${{ github.event.inputs.name }}
- draft: true
- body: 'Verify wasm hash:
- ```
- $ b2sum -l 256 joystream_runtime_${{ github.event.inputs.tag }}.wasm
- ```
- This should be the output
- ```
- ${{ steps.extract_binaries.outputs.blob_hash }}
- ```
- '
|