Release - Publish draft #146
Workflow file for this run
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: | |
release_tag: | |
description: Tag matching the actual release candidate with the format polkadot-stableYYMM(-X)-rcX or polkadot-stableYYMM(-X) | |
required: true | |
type: string | |
jobs: | |
check-synchronization: | |
uses: paritytech-release/sync-workflows/.github/workflows/check-syncronization.yml@main | |
validate-inputs: | |
needs: [check-synchronization] | |
if: ${{ needs.check-synchronization.outputs.checks_passed }} == 'true' | |
runs-on: ubuntu-latest | |
outputs: | |
release_tag: ${{ steps.validate_inputs.outputs.release_tag }} | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: Validate inputs | |
id: validate_inputs | |
run: | | |
. ./.github/scripts/common/lib.sh | |
RELEASE_TAG=$(validate_stable_tag ${{ inputs.release_tag }}) | |
echo "release_tag=${RELEASE_TAG}" >> $GITHUB_OUTPUT | |
get-rust-versions: | |
needs: [validate-inputs] | |
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: | |
# needs: [validate-inputs] | |
# 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 polkadot-sdk-docs-first" | |
# build_opts: "--features on-chain-release-build" | |
# # replace this job with fetch-binaries-from-s3 | |
# build-binaries: | |
# needs: [validate-inputs] | |
# 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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
# - 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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
# - 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.4.0/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 | |
# RELEASE_TAG: ${{ needs.validate-inputs.outputs.release_tag }} | |
# shell: bash | |
# run: | | |
# . ./.github/scripts/common/lib.sh | |
# export REF1=$(get_latest_release_tag) | |
# if [[ -z "$RELEASE_TAG" ]]; then | |
# export REF2="${{ github.ref_name }}" | |
# echo "REF2: ${REF2}" | |
# else | |
# export REF2="$RELEASE_TAG" | |
# echo "REF2: ${REF2}" | |
# fi | |
# echo "REL_TAG=$REF2" >> $GITHUB_ENV | |
# export VERSION=$(echo "$REF2" | sed -E 's/.*(stable[0-9]+).*$/\1/') | |
# ./scripts/release/build-changelogs.sh | |
# - 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: Generate content write token for the release automation | |
# id: generate_write_token | |
# uses: actions/create-github-app-token@v1 | |
# with: | |
# app-id: ${{ vars.POLKADOT_SDK_RELEASE_RW_APP_ID }} | |
# private-key: ${{ secrets.POLKADOT_SDK_RELEASE_RW_APP_KEY }} | |
# owner: paritytech | |
# - name: Create draft release | |
# id: create-release | |
# uses: actions/create-release@0cb9c9b65d5d1901c1f53e5e66eaf4afd303e70e # v1.1.4 | |
# env: | |
# # GHITHUB_TOKEN: ${{ steps.generate_write_token.outputs.token }} | |
# 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 | |
# # owner: paritytech | |
# # repo: paritytech/polkadot-sdk | |
# 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@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
# - 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: Generate content write token for the release automation | |
# id: generate_write_token | |
# uses: actions/create-github-app-token@v1 | |
# with: | |
# app-id: ${{ vars.POLKADOT_SDK_RELEASE_RW_APP_ID }} | |
# private-key: ${{ secrets.POLKADOT_SDK_RELEASE_RW_APP_KEY }} | |
# owner: paritytech | |
# - 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 }} | |
# # GHITHUB_TOKEN: ${{ steps.generate_write_token.outputs.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: Generate content write token for the release automation | |
# id: generate_write_token | |
# uses: actions/create-github-app-token@v1 | |
# with: | |
# app-id: ${{ vars.POLKADOT_SDK_RELEASE_RW_APP_ID }} | |
# private-key: ${{ secrets.POLKADOT_SDK_RELEASE_RW_APP_KEY }} | |
# owner: paritytech | |
# - name: Upload ${{ matrix.binary }} binary | |
# uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 #v1.0.2 | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# # GHITHUB_TOKEN: ${{ steps.generate_write_token.outputs.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 | |
publish-polkadot-artifacts: | |
# needs: [ publish-release-draft ] | |
needs: [ validate-inputs ] | |
continue-on-error: true | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
binary: [ polkadot, polkadot-parachain, polkadot-omni-node ] | |
target: [ x86_64-unknown-linux-gnu, aarch64-apple-darwin ] | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
- name: Fetch binaries from s3 based on version | |
run: | | |
. ./.github/scripts/common/lib.sh | |
VERSION="${{ needs.validate-inputs.outputs.release_tag }}" | |
fetch_release_artifacts_from_s3 ${{ matrix.binary }} ${{ matrix.target }} | |
- name: Upload ${{ matrix.binary }} binary to release draft | |
# uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 #v1.0.2 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
working-directory: ${{ github.workspace}}/release-artifacts/${{ matrix.target }}/${{ matrix.binary }} | |
run: | | |
ls -las | |
for file in ${{ matrix.binary }} ${{ matrix.binary }}.asc ${{ matrix.binary }}.sha256; do | |
echo "Uploading $file to GH" | |
gh release upload ${{ needs.validate-inputs.outputs.release_tag }} $file | |
done | |
# 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 }} |