From d34f6878a337f6211a4708560e7e669d9bd7c1d6 Mon Sep 17 00:00:00 2001
From: Maksym H <1177472+mordamax@users.noreply.github.com>
Date: Fri, 30 Aug 2024 15:05:05 +0100
Subject: [PATCH] fix cmd bot PR context (#5531)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- restore update-ui.sh (accidentally removed with bunch of bash 😅
- fix empty context and pushing to dev branch (supporting forks)
tested fork here: https://github.com/paritytech-stg/polkadot-sdk/pull/45
---
.github/workflows/cmd.yml | 49 +++++++++++++++++++++++++---
.github/workflows/command-inform.yml | 22 +++++++++++++
scripts/update-ui-tests.sh | 41 +++++++++++++++++++++++
3 files changed, 108 insertions(+), 4 deletions(-)
create mode 100644 .github/workflows/command-inform.yml
create mode 100644 scripts/update-ui-tests.sh
diff --git a/.github/workflows/cmd.yml b/.github/workflows/cmd.yml
index dac46cf435a6..7a742751005d 100644
--- a/.github/workflows/cmd.yml
+++ b/.github/workflows/cmd.yml
@@ -237,8 +237,48 @@ jobs:
echo "RUNNER=ubuntu-latest" >> $GITHUB_OUTPUT
fi
- cmd:
+ # Get PR branch name, because the issue_comment event does not contain the PR branch name
+ get-pr-branch:
needs: [ set-image ]
+ runs-on: ubuntu-latest
+ outputs:
+ pr-branch: ${{ steps.get-pr.outputs.pr_branch }}
+ repo: ${{ steps.get-pr.outputs.repo }}
+ steps:
+ - name: Check if the issue is a PR
+ id: check-pr
+ run: |
+ if [ -n "${{ github.event.issue.pull_request.url }}" ]; then
+ echo "This is a pull request comment"
+ else
+ echo "This is not a pull request comment"
+ exit 1
+ fi
+
+ - name: Get PR Branch Name and Repo
+ if: steps.check-pr.outcome == 'success'
+ id: get-pr
+ uses: actions/github-script@v7
+ with:
+ script: |
+ const pr = await github.rest.pulls.get({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ pull_number: context.issue.number,
+ });
+ const prBranch = pr.data.head.ref;
+ const repo = pr.data.head.repo.full_name;
+ console.log(prBranch, repo)
+ core.setOutput('pr_branch', prBranch);
+ core.setOutput('repo', repo);
+
+ - name: Use PR Branch Name and Repo
+ run: |
+ echo "The PR branch is ${{ steps.get-pr.outputs.pr_branch }}"
+ echo "The repository is ${{ steps.get-pr.outputs.repo }}"
+
+ cmd:
+ needs: [ set-image, get-pr-branch ]
env:
JOB_NAME: 'cmd'
runs-on: ${{ needs.set-image.outputs.RUNNER }}
@@ -291,7 +331,8 @@ jobs:
- name: Checkout
uses: actions/checkout@v4
with:
- ref: ${{ github.head_ref }}
+ repository: ${{ needs.get-pr-branch.outputs.repo }}
+ ref: ${{ needs.get-pr-branch.outputs.pr-branch }}
- name: Install dependencies for bench
if: startsWith(steps.get-pr-comment.outputs.group2, 'bench')
@@ -317,11 +358,11 @@ jobs:
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
- git pull origin ${{ github.head_ref }}
+ git pull origin ${{ needs.get-pr-branch.outputs.pr-branch }}
git add .
git restore --staged Cargo.lock # ignore changes in Cargo.lock
git commit -m "Update from ${{ github.actor }} running command '${{ steps.get-pr-comment.outputs.group2 }}'" || true
- git push origin ${{ github.head_ref }}
+ git push origin ${{ needs.get-pr-branch.outputs.pr-branch }}
else
echo "Nothing to commit";
fi
diff --git a/.github/workflows/command-inform.yml b/.github/workflows/command-inform.yml
new file mode 100644
index 000000000000..973463953193
--- /dev/null
+++ b/.github/workflows/command-inform.yml
@@ -0,0 +1,22 @@
+name: Inform of new command action
+
+on:
+ issue_comment:
+ types: [ created ]
+
+jobs:
+ comment:
+ runs-on: ubuntu-latest
+ # Temporary disable the bot until the new command bot works properly
+ if: github.event.issue.pull_request && startsWith(github.event.comment.body, 'bot ') && false # disabled for now, until tested
+ steps:
+ - name: Inform that the new command exist
+ uses: actions/github-script@v7
+ with:
+ script: |
+ github.rest.issues.createComment({
+ issue_number: context.issue.number,
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ body: 'We have migrated the command bot to GHA
Please, see the new usage instructions here. Soon the old commands will be disabled.'
+ })
\ No newline at end of file
diff --git a/scripts/update-ui-tests.sh b/scripts/update-ui-tests.sh
new file mode 100644
index 000000000000..a1f380c4712d
--- /dev/null
+++ b/scripts/update-ui-tests.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/env bash
+# Script for updating the UI tests for a new rust stable version.
+# Exit on error
+set -e
+
+# by default current rust stable will be used
+RUSTUP_RUN=""
+# check if we have a parameter
+# ./scripts/update-ui-tests.sh 1.70
+if [ ! -z "$1" ]; then
+ echo "RUST_VERSION: $1"
+ # This will run all UI tests with the rust stable 1.70.
+ # The script requires that rustup is installed.
+ RUST_VERSION=$1
+ RUSTUP_RUN="rustup run $RUST_VERSION"
+
+
+ echo "installing rustup $RUST_VERSION"
+ if ! command -v rustup &> /dev/null
+ then
+ echo "rustup needs to be installed"
+ exit
+ fi
+
+ rustup install $RUST_VERSION
+ rustup component add rust-src --toolchain $RUST_VERSION
+fi
+
+# Ensure we run the ui tests
+export RUN_UI_TESTS=1
+# We don't need any wasm files for ui tests
+export SKIP_WASM_BUILD=1
+# Let trybuild overwrite the .stderr files
+export TRYBUILD=overwrite
+
+# ./substrate
+$RUSTUP_RUN cargo test --manifest-path substrate/primitives/runtime-interface/Cargo.toml ui
+$RUSTUP_RUN cargo test -p sp-api-test ui
+$RUSTUP_RUN cargo test -p frame-election-provider-solution-type ui
+$RUSTUP_RUN cargo test -p frame-support-test --features=no-metadata-docs,try-runtime,experimental ui
+$RUSTUP_RUN cargo test -p xcm-procedural ui
\ No newline at end of file