From 3b95ac923dc98ebac6642365758fed7fabd7eaf1 Mon Sep 17 00:00:00 2001 From: joao-paulo-parity Date: Thu, 20 Oct 2022 12:56:56 -0300 Subject: [PATCH] add link to the weight comparison tool for weights PRs --- scripts/ci/gitlab/pipeline/benchmarks.yml | 10 +---- scripts/create-benchmark-pr.sh | 49 +++++++++++++++++++++++ 2 files changed, 51 insertions(+), 8 deletions(-) create mode 100755 scripts/create-benchmark-pr.sh diff --git a/scripts/ci/gitlab/pipeline/benchmarks.yml b/scripts/ci/gitlab/pipeline/benchmarks.yml index 03aedd03960..1509c00cd3c 100644 --- a/scripts/ci/gitlab/pipeline/benchmarks.yml +++ b/scripts/ci/gitlab/pipeline/benchmarks.yml @@ -28,10 +28,7 @@ benchmarks-assets: - export CURRENT_TIME=$(date '+%s') - export BRANCHNAME="weights-statemint-${CI_COMMIT_BRANCH}-${CURRENT_TIME}" - !reference [.git-commit-push, script] - # create PR to release-parachains-v* branch - - curl -u ${GITHUB_USER}:${GITHUB_TOKEN} - -d '{"title":"[benchmarks] Update weights for statemine/t","body":"This PR is generated automatically by CI. (Once merged please backport to master and node release branch.)","head":"'${BRANCHNAME}'","base":"'${CI_COMMIT_BRANCH}'"}' - -X POST https://api.github.com/repos/paritytech/${CI_PROJECT_NAME}/pulls + - ./scripts/create-benchmark-pr.sh "[benchmarks] Update weights for statemine/t" "$BRANCHNAME" after_script: - rm -rf .git/config tags: @@ -50,10 +47,7 @@ benchmarks-collectives: - export CURRENT_TIME=$(date '+%s') - export BRANCHNAME="weights-collectives-${CI_COMMIT_BRANCH}-${CURRENT_TIME}" - !reference [.git-commit-push, script] - # create PR - - curl -u ${GITHUB_USER}:${GITHUB_TOKEN} - -d '{"title":"[benchmarks] Update weights for collectives","body":"This PR is generated automatically by CI.","head":"'$BRANCHNAME'","base":"'${CI_COMMIT_BRANCH}'"}' - -X POST https://api.github.com/repos/paritytech/${CI_PROJECT_NAME}/pulls + - ./scripts/create-benchmark-pr.sh "[benchmarks] Update weights for collectives" "$BRANCHNAME" after_script: - rm -rf .git/config tags: diff --git a/scripts/create-benchmark-pr.sh b/scripts/create-benchmark-pr.sh new file mode 100755 index 00000000000..f467ea488da --- /dev/null +++ b/scripts/create-benchmark-pr.sh @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +set -Eeu -o pipefail +shopt -s inherit_errexit + +PR_TITLE="$1" +HEAD_REF="$2" + +ORG="paritytech" +REPO="$CI_PROJECT_NAME" +BASE_REF="$CI_COMMIT_BRANCH" + +WEIGHTS_COMPARISON_URL_PARTS=( + "https://weights.tasty.limo/compare?" + "repo=$REPO&" + "threshold=30&" + "path_pattern=**%2Fweights%2F*.rs&" + "method=guess-worst&" + "ignore_errors=true&" + "unit=time&" + "old=$BASE_REF&" + "new=$HEAD_REF" +) +printf -v WEIGHTS_COMPARISON_URL %s "${WEIGHTS_COMPARISON_URL_PARTS[@]}" + +PAYLOAD="$(jq -n \ + --arg title "$PR_TITLE" \ + --arg body " +This PR is generated automatically by CI. (Once merged please backport to master and node release branch.) + +Compare the weights with \`$BASE_REF\`: $WEIGHTS_COMPARISON_URL +" \ + --arg base "$BASE_REF" \ + --arg head "$HEAD_REF" \ + '{ + title: $title, + body: $body, + head: $head, + base: $base + }' +)" + +echo "PAYLOAD: $PAYLOAD" + +curl \ + -H "Authorization: token $GITHUB_TOKEN" \ + -X POST \ + -d "$PAYLOAD" \ + "https://api.github.com/repos/$ORG/$REPO/pulls"