mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 18:07:58 +00:00
f5c32f71f4
* ci: add kubernetes helm chart and gcp deployment * use official or parity's docker images only
111 lines
2.5 KiB
Bash
Executable File
111 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# check if there is a merge conflict with this pull request only about wasm
|
|
# binary blobs. if so trigger a rebuild of it and push it on the feature
|
|
# branch if owned by paritytech
|
|
#
|
|
|
|
set -e # fail on any error
|
|
|
|
TEST_RUNTIME="core/test-runtime/wasm/target/wasm32-unknown-unknown/release/substrate_test_runtime.compact.wasm"
|
|
NODE_RUNTIME="node/runtime/wasm/target/wasm32-unknown-unknown/release/node_runtime.compact.wasm"
|
|
|
|
|
|
|
|
jsonfile="$(mktemp)"
|
|
|
|
attemptno="1"
|
|
while ( ! test -s ${jsonfile} ) \
|
|
|| ( [ "$(jq -r .mergeable ${jsonfile})" = "null" ] \
|
|
&& [ "${attemptno}" -lt 5 ] )
|
|
do
|
|
echo "| checking pull request status (attempt no ${attemptno})"
|
|
curl -sS -o ${jsonfile} -H "Accept: application/vnd.github.v3+json" \
|
|
"${GITHUB_API}/repos/paritytech/substrate/pulls/${CI_COMMIT_REF_NAME}"
|
|
sleep 3
|
|
attemptno="$(( ${attemptno} + 1 ))"
|
|
done
|
|
|
|
|
|
|
|
baseref="$(jq -r .head.ref ${jsonfile})"
|
|
baserepo="$(jq -r .head.repo.full_name ${jsonfile})"
|
|
mergeable="$(jq -r .mergeable ${jsonfile})"
|
|
|
|
rm -f ${jsonfile}
|
|
|
|
|
|
cat <<-EOT
|
|
|
|
|
| pr is of feature branch ${baseref} on ${baserepo}
|
|
|
|
|
| tell me github is this branch mergeable into the master branch?
|
|
|
|
|
EOT
|
|
|
|
test "${mergeable}" = "true" && echo "| yes, it is." && exit 0
|
|
|
|
if [ "${baseref}" = "null" -o "${baserepo}" = "null" ]
|
|
then
|
|
echo "| either connectivity issues with github or pull request not existant"
|
|
exit 3
|
|
fi
|
|
|
|
cat <<-EOT
|
|
| not mergeable
|
|
|
|
|
| github sees a conflict - check if it's only about the following wasm blobs
|
|
|
|
|
| - ${TEST_RUNTIME}
|
|
| - ${NODE_RUNTIME}
|
|
|
|
|
EOT
|
|
|
|
git fetch origin master
|
|
git config --global user.email "devops-team+substrate-ci-merge-conflict@parity.io"
|
|
git config --global user.name "I shall never commit to anything"
|
|
|
|
cat <<-EOT
|
|
|
|
|
| trying to merge with the master branch to see if there is a conflict about
|
|
| the wasm files only
|
|
|
|
|
EOT
|
|
|
|
if git merge --no-commit --no-ff origin/master | grep '^CONFLICT ' \
|
|
| grep -v -e ${TEST_RUNTIME} -e ${NODE_RUNTIME}
|
|
then
|
|
git merge --abort
|
|
echo "| there are more conflicting files than the wasm blobs"
|
|
exit 1
|
|
fi
|
|
git merge --abort
|
|
|
|
|
|
cat <<-EOT
|
|
|
|
|
| only wasm blobs block the merge.
|
|
|
|
|
| triggering rebuild of wasm blobs which will be pushed onto the feature
|
|
| branch of this pull request upon success.
|
|
|
|
|
| see:
|
|
|
|
|
EOT
|
|
|
|
|
|
|
|
curl -sS -X POST \
|
|
-F "token=${CI_JOB_TOKEN}" \
|
|
-F "ref=master" \
|
|
-F "variables[REBUILD_WASM]=\"${baserepo}:${baseref}\"" \
|
|
${GITLAB_API}/projects/${GITHUB_API_PROJECT}/trigger/pipeline \
|
|
| jq -r .web_url
|
|
|
|
# fail as there will be another commit on top of that feature branch that will
|
|
# be tested anyway.
|
|
exit 1
|
|
|
|
|
|
# vim: noexpandtab
|