diff --git a/polkadot/.gitlab-ci.yml b/polkadot/.gitlab-ci.yml index afa52c755c..f8c3d57fa4 100644 --- a/polkadot/.gitlab-ci.yml +++ b/polkadot/.gitlab-ci.yml @@ -269,6 +269,20 @@ publish-s3-release: +publish-draft-release: + stage: deploy + image: parity/tools:latest + only: + - tags + - /^v[0-9]+\.[0-9]+\.[0-9]+.*$/ # i.e. v1.0.1, v2.1.0rc1 + script: + - ./scripts/gitlab/publish_draft_release.sh + interruptible: true + allow_failure: true + + + + .deploy-template: &deploy stage: deploy diff --git a/polkadot/scripts/gitlab/alert_pending_release.sh b/polkadot/scripts/gitlab/alert_pending_release.sh index d9798d0733..0bf682712b 100755 --- a/polkadot/scripts/gitlab/alert_pending_release.sh +++ b/polkadot/scripts/gitlab/alert_pending_release.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # structure_message $content $formatted_content (optional) structure_message() { @@ -44,7 +44,7 @@ EOF formatted_msg_body=$(cat <New version of polkadot tagged: $CI_COMMIT_TAG.
Build pipeline: $CI_PIPELINE_URL
-A release will be pending upon completion of this pipeline. +A release will be drafted upon completion of this pipeline. EOF ) @@ -55,7 +55,7 @@ send_message "$(structure_message "$msg_body" "$formatted_msg_body")" $MATRIX_RO msg_body=$(cat < /dev/null +old_substrate_commit=$(grep -A 2 'name = "sc-cli"' Cargo.lock | egrep -o '[a-f0-9]{40}') + +pushd $substrate_dir + git checkout polkadot-master > /dev/null + git pull > /dev/null + substrate_changes="$(sanitised_git_logs $old_substrate_commit $cur_substrate_commit | sed 's/(#/(paritytech\/substrate#/')" +popd + +echo "[+] Changes generated. Removing temporary repos" +# Should be done with substrate repo now, clean it up +rm -rf $substrate_dir + +if [ -n $substrate_changes ]; then + release_text="$release_text + +Substrate changes +----------------- +$substrate_changes" +fi + +echo "[+] Release text generated: " +echo "$release_text" + +echo "[+] Pushing release to github" +# Create release on github +release_name="Kusama CC-$cc_version $version" +data=$(jq -Rs --arg version "$version" \ + --arg release_name "$release_name" \ + --arg release_text "$release_text" \ +'{ + "tag_name": $version, + "target_commitish": "master", + "name": $release_name, + "body": $release_text, + "draft": true, + "prerelease": false +}' < /dev/null) + +out=$(curl -s -X POST --data "$data" -H "Authorization: token $GITHUB_RELEASE_TOKEN" "$api_base/releases") + +html_url=$(echo $out | jq -r .html_url) + +if [ "$html_url" == "null" ] +then + echo "[!] Something went wrong posting:" + echo $out +else + echo "[+] Release draft created: $html_url" +fi + +echo '[+] Sending draft release URL to Matrix' + +msg_body=$(cat <Gav: Release pipeline for Polkadot $version complete.
+Draft release created: $html_url +EOF +) +send_message "$(structure_message "$msg_body" "$formatted_msg_body")" $MATRIX_ROOM_ID $MATRIX_ACCESS_TOKEN + +echo "[+] Done! Maybe the release worked..."