diff --git a/substrate/.maintain/gitlab/check_polkadot.sh b/substrate/.maintain/gitlab/check_polkadot.sh index 1d5bba98af70e026425cfbb70831daae6d224469..0df940ffe2038b308f750539875a392115fde635 100755 --- a/substrate/.maintain/gitlab/check_polkadot.sh +++ b/substrate/.maintain/gitlab/check_polkadot.sh @@ -3,9 +3,11 @@ # check if a pr is compatible with polkadot companion pr or master if not # available # -# mark companion pr in the body of the polkadot pr like +# to override one that was just mentioned mark companion pr in the body of the +# polkadot pr like # # polkadot companion: paritytech/polkadot#567 +# github_api_substrate_pull_url="https://api.github.com/repos/paritytech/substrate/pulls" @@ -29,7 +31,9 @@ polkadot companion: paritytech/polkadot#567 it will then run cargo check from this polkadot's branch with substrate code -from this pull request. +from this pull request. in absence of that string it will check if a polkadot +pr is mentioned and will use the last one instead. if none of the above can be +found it will check the build against polkadot:master. EOT @@ -49,18 +53,27 @@ if expr match "${CI_COMMIT_REF_NAME}" '^[0-9]\+$' >/dev/null then boldprint "this is pull request no ${CI_COMMIT_REF_NAME}" # get the last reference to a pr in polkadot - comppr="$(curl -H "${github_header}" -s ${github_api_substrate_pull_url}/${CI_COMMIT_REF_NAME} \ - | sed -n -r \ - -e 's;^[[:space:]]+"body":[[:space:]]+".*polkadot companion: paritytech/polkadot#([0-9]+).*"[^"]+$;\1;p' \ - -e 's;^[[:space:]]+"body":[[:space:]]+".*polkadot companion: https://github.com/paritytech/polkadot/pull/([0-9]+).*"[^"]+$;\1;p' \ + pr_body="$(curl -H "${github_header}" -s ${github_api_substrate_pull_url}/${CI_COMMIT_REF_NAME} \ + | sed -n -r 's/^[[:space:]]+"body": (".*")[^"]+$/\1/p')" + + pr_companion="$(echo "${pr_body}" | sed -n -r \ + -e 's;^.*polkadot companion: paritytech/polkadot#([0-9]+).*$;\1;p' \ + -e 's;^.*polkadot companion: https://github.com/paritytech/polkadot/pull/([0-9]+).*$;\1;p' \ | tail -n 1)" - if [ "${comppr}" ] + if [ -z "${pr_companion}" ] + then + pr_companion="$(echo "${pr_body}" | sed -n -r \ + 's;^.*https://github.com/paritytech/polkadot/pull/([0-9]+).*$;\1;p' \ + | tail -n 1)" + fi + + if [ "${pr_companion}" ] then - boldprint "companion pr specified: #${comppr}" - git fetch --depth 1 origin refs/pull/${comppr}/head:pr/${comppr} - git checkout pr/${comppr} + boldprint "companion pr specified/detected: #${pr_companion}" + git fetch --depth 1 origin refs/pull/${pr_companion}/head:pr/${pr_companion} + git checkout pr/${pr_companion} else - boldprint "no companion pr declared - building polkadot:master" + boldprint "no companion pr found - building polkadot:master" fi else boldprint "this is not a pull request - building polkadot:master"