Commit 46c873b2 authored by gabriel klawitter's avatar gabriel klawitter Committed by Gavin Wood
Browse files

Disable merge test enable kusama nightly staging test (#412)

* remove merge-test and set up kusama-nightly-staging

* refactor .gitlab-ci.yml

* kusama-nightly-staging typo i

* kusama-nightly-staging typo and cond --locked
parent e81ff88b
Pipeline #50834 passed with stages
in 9 minutes and 36 seconds
......@@ -7,7 +7,6 @@
stages:
- merge-test
- test
- build
- publish
......@@ -32,12 +31,16 @@ variables:
paths:
- artifacts/
.kubernetes-build: &kubernetes-build
.kubernetes-env: &kubernetes-env
tags:
- kubernetes-parity-build
environment:
name: parity-build
.docker-env: &docker-env
tags:
- linux-docker
.compiler_info: &compiler_info
before_script:
- rustup show
......@@ -45,26 +48,38 @@ variables:
- sccache -s
#### stage: merge-test
check-merge-conflict:
stage: merge-test
image: parity/tools:latest
cache: {}
<<: *kubernetes-build
.build-refs: &build-refs
only:
- master
- schedules
- web
- /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
- kusama-nightly-staging
except:
variables:
- $DEPLOY_TAG
.test-refs: &test-refs
only:
- master
- schedules
- web
- /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1
- kusama-nightly-staging
- /^[0-9]+$/
variables:
GITHUB_API: "https://api.github.com"
GITLAB_API: "https://gitlab.parity.io/api/v4"
GITHUB_API_PROJECT: "parity%2Finfrastructure%2Fgithub-api"
script:
- ./scripts/gitlab/check_merge_conflict.sh
except:
variables:
- $DEPLOY_TAG
test-linux-stable: &test
stage: test
<<: *test-refs
<<: *docker-env
<<: *compiler_info
variables:
RUST_TOOLCHAIN: stable
......@@ -72,40 +87,29 @@ test-linux-stable: &test
# but still want to have debug assertions.
RUSTFLAGS: -Cdebug-assertions=y
TARGET: native
tags:
- linux-docker
only:
- tags
- master
- schedules
- web
- /^[0-9]+$/
except:
variables:
- $DEPLOY_TAG
script:
- time cargo test --all --release --verbose --locked
- |
test "${CI_COMMIT_TAG}" = "kusama-nightly-staging" && (
echo "kusama-nightly-staging: change Cargo.toml to build against substrate:kusama-nightly-staging"
find . -name Cargo.toml -exec sed -i -r -e ':github.com/paritytech/substrate: { s:branch = "polkadot-master":tag = "kusama-nightly-staging":; s:github.com/paritytech/substrate:gitlab.parity.io/parity/substrate.git:}' '{}' \;
time cargo test --all --release --verbose) || \
time cargo test --all --release --verbose --locked
- sccache -s
.build-only: &build-only
only:
- master
- tags
- web
build-linux-release: &build
stage: build
<<: *collect-artifacts
<<: *build-only
<<: *build-refs
<<: *docker-env
<<: *compiler_info
except:
variables:
- $DEPLOY_TAG
tags:
- linux-docker
script:
- |
test "${CI_COMMIT_TAG}" = "kusama-nightly-staging" && (
echo "kusama-nightly-staging: change Cargo.toml to build against substrate:kusama-nightly-staging";
find . -name Cargo.toml -exec sed -i -r -e ':github.com/paritytech/substrate: { s:branch = "polkadot-master":tag = "kusama-nightly-staging":; s:github.com/paritytech/substrate:gitlab.parity.io/parity/substrate.git:}' '{}' \;)
- time cargo build --release --verbose
- mkdir -p ./artifacts
- mv ./target/release/polkadot ./artifacts/.
......@@ -129,8 +133,8 @@ build-linux-release: &build
dependencies:
- build-linux-release
cache: {}
<<: *build-only
<<: *kubernetes-build
<<: *build-refs
<<: *kubernetes-env
......@@ -206,7 +210,7 @@ publish-s3-release:
cache: {}
retry: 1
image: parity/kubetools:latest
<<: *build-only
<<: *build-refs
tags:
# this is the runner that is used to deploy it
- kubernetes-parity-build
......@@ -245,6 +249,9 @@ publish-s3-release:
only:
variables:
- $DEPLOY_TAG
except:
variables:
- $DEPLOY_TAG == ""
......
#!/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
NODE_RUNTIME_COMPACT="runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.compact.wasm"
NODE_RUNTIME="runtime/wasm/target/wasm32-unknown-unknown/release/polkadot_runtime.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/polkadot/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" -a "${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
|
| - ${NODE_RUNTIME_COMPACT}
| - ${NODE_RUNTIME}
|
EOT
git fetch origin master
git config --global user.email "devops-team+polkadot-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 ${NODE_RUNTIME_COMPACT} -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
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment