Release - Publish draft #129
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release - Publish draft | |
on: | |
push: | |
tags: | |
# Catches v1.2.3 and v1.2.3-rc1 | |
- v[0-9]+.[0-9]+.[0-9]+* | |
# - polkadot-stable[0-9]+* Activate when the release process from release org is setteled | |
workflow_dispatch: | |
inputs: | |
version: | |
description: Current release/rc version | |
jobs: | |
get-rust-versions: | |
runs-on: ubuntu-latest | |
outputs: | |
rustc-stable: ${{ steps.get-rust-versions.outputs.stable }} | |
steps: | |
- id: get-rust-versions | |
run: | | |
RUST_STABLE_VERSION=$(curl -sS https://raw.githubusercontent.com/paritytech/scripts/master/dockerfiles/ci-unified/Dockerfile | grep -oP 'ARG RUST_STABLE_VERSION=\K[^ ]+') | |
echo "stable=$RUST_STABLE_VERSION" >> $GITHUB_OUTPUT | |
build-runtimes: | |
uses: "./.github/workflows/release-srtool.yml" | |
with: | |
excluded_runtimes: "asset-hub-rococo bridge-hub-rococo contracts-rococo coretime-rococo people-rococo rococo rococo-parachain substrate-test bp cumulus-test kitchensink minimal-template parachain-template penpal polkadot-test seedling shell frame-try sp solochain-template" | |
build_opts: "--features on-chain-release-build" | |
build-binaries: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# Tuples of [package, binary-name] | |
binary: [ [frame-omni-bencher, frame-omni-bencher], [staging-chain-spec-builder, chain-spec-builder] ] | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.0.0 | |
- name: Install protobuf-compiler | |
run: | | |
sudo apt update | |
sudo apt install -y protobuf-compiler | |
- name: Build ${{ matrix.binary[1] }} binary | |
run: | | |
cargo build --locked --profile=production -p ${{ matrix.binary[0] }} --bin ${{ matrix.binary[1] }} | |
target/production/${{ matrix.binary[1] }} --version | |
- name: Upload ${{ matrix.binary[1] }} binary | |
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 | |
with: | |
name: ${{ matrix.binary[1] }} | |
path: target/production/${{ matrix.binary[1] }} | |
publish-release-draft: | |
runs-on: ubuntu-latest | |
needs: [ get-rust-versions, build-runtimes ] | |
outputs: | |
release_url: ${{ steps.create-release.outputs.html_url }} | |
asset_upload_url: ${{ steps.create-release.outputs.upload_url }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.0.0 | |
- name: Download artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
- name: Prepare tooling | |
run: | | |
URL=https://github.com/chevdor/tera-cli/releases/download/v0.2.4/tera-cli_linux_amd64.deb | |
wget $URL -O tera.deb | |
sudo dpkg -i tera.deb | |
- name: Prepare draft | |
id: draft | |
env: | |
RUSTC_STABLE: ${{ needs.get-rust-versions.outputs.rustc-stable }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
ASSET_HUB_WESTEND_DIGEST: ${{ github.workspace}}/asset-hub-westend-runtime/asset-hub-westend-srtool-digest.json | |
BRIDGE_HUB_WESTEND_DIGEST: ${{ github.workspace}}/bridge-hub-westend-runtime/bridge-hub-westend-srtool-digest.json | |
COLLECTIVES_WESTEND_DIGEST: ${{ github.workspace}}/collectives-westend-runtime/collectives-westend-srtool-digest.json | |
CORETIME_WESTEND_DIGEST: ${{ github.workspace}}/coretime-westend-runtime/coretime-westend-srtool-digest.json | |
GLUTTON_WESTEND_DIGEST: ${{ github.workspace}}/glutton-westend-runtime/glutton-westend-srtool-digest.json | |
PEOPLE_WESTEND_DIGEST: ${{ github.workspace}}/people-westend-runtime/people-westend-srtool-digest.json | |
WESTEND_DIGEST: ${{ github.workspace}}/westend-runtime/westend-srtool-digest.json | |
run: | | |
. ./.github/scripts/common/lib.sh | |
export REF1=$(get_latest_release_tag) | |
if [[ -z "${{ inputs.version }}" ]]; then | |
export REF2="${{ github.ref_name }}" | |
echo "REF2: ${REF2}" | |
else | |
export REF2="${{ inputs.version }}" | |
echo "REF2: ${REF2}" | |
fi | |
echo "REL_TAG=$REF2" >> $GITHUB_ENV | |
export VERSION=$(echo "$REF2" | sed -E 's/.*(stable[0-9]+).*$/\1/') | |
echo "VERSION: $VERSION" | |
./scripts/release/build-changelogs.sh | |
cat ${{ github.workspace}}/scripts/release/RELEASE_DRAFT.md | |
- name: Archive artifact context.json | |
uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 | |
with: | |
name: release-notes-context | |
path: | | |
scripts/release/context.json | |
**/*-srtool-digest.json | |
- name: Create draft release | |
id: create-release | |
uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e # v1.1.4 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ env.REL_TAG }} | |
release_name: Polkadot ${{ env.REL_TAG }} | |
body_path: ${{ github.workspace}}/scripts/release/RELEASE_DRAFT.md | |
draft: true | |
publish-runtimes: | |
needs: [ build-runtimes, publish-release-draft ] | |
continue-on-error: true | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: ${{ fromJSON(needs.build-runtimes.outputs.published_runtimes) }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@6d193bf28034eafb982f37bd894289fe649468fc # v4.0.0 | |
- name: Download artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
- name: Get runtime info | |
env: | |
JSON: release-notes-context/${{ matrix.chain }}-runtime/${{ matrix.chain }}-srtool-digest.json | |
run: | | |
>>$GITHUB_ENV echo ASSET=$(find ${{ matrix.chain }}-runtime -name '*.compact.compressed.wasm') | |
>>$GITHUB_ENV echo SPEC=$(<${JSON} jq -r .runtimes.compact.subwasm.core_version.specVersion) | |
- name: Upload compressed ${{ matrix.chain }} v${{ env.SPEC }} wasm | |
if: ${{ matrix.chain != 'rococo-parachain' }} | |
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 #v1.0.2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.publish-release-draft.outputs.asset_upload_url }} | |
asset_path: ${{ env.ASSET }} | |
asset_name: ${{ matrix.chain }}_runtime-v${{ env.SPEC }}.compact.compressed.wasm | |
asset_content_type: application/wasm | |
publish-binaries: | |
needs: [ publish-release-draft, build-binaries ] | |
continue-on-error: true | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
binary: [frame-omni-bencher, chain-spec-builder] | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ${{ matrix.binary }} | |
- name: Upload ${{ matrix.binary }} binary | |
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 #v1.0.2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ needs.publish-release-draft.outputs.asset_upload_url }} | |
asset_path: ${{ github.workspace}}/${{ matrix.binary }} | |
asset_name: ${{ matrix.binary }} | |
asset_content_type: application/octet-stream | |
post_to_matrix: | |
runs-on: ubuntu-latest | |
needs: publish-release-draft | |
environment: release | |
strategy: | |
matrix: | |
channel: | |
- name: "Team: RelEng Internal" | |
room: '!GvAyzgCDgaVrvibaAF:parity.io' | |
steps: | |
- name: Send Matrix message to ${{ matrix.channel.name }} | |
uses: s3krit/matrix-message-action@70ad3fb812ee0e45ff8999d6af11cafad11a6ecf # v0.0.3 | |
with: | |
room_id: ${{ matrix.channel.room }} | |
access_token: ${{ secrets.RELEASENOTES_MATRIX_V2_ACCESS_TOKEN }} | |
server: m.parity.io | |
message: | | |
**New version of polkadot tagged**: ${{ github.ref_name }}<br/> | |
Draft release created: ${{ needs.publish-release-draft.outputs.release_url }} |