difftreelog
ci synchronize forkless data/fork
in: master
6 files changed
.docker/Dockerfile-parachain-upgradediffbeforeafterboth--- a/.docker/Dockerfile-parachain-upgrade
+++ b/.docker/Dockerfile-parachain-upgrade
@@ -24,10 +24,8 @@
rustup show
RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN
-
RUN mkdir /unique_parachain
WORKDIR /unique_parachain
-
# ===== BUILD current version ======
FROM rust-builder as builder-unique-current
@@ -42,7 +40,6 @@
RUN git clone $REPO_URL -b $MAINNET_BRANCH . && \
cargo build --features=$FEATURE --$PROFILE
-
# ===== BUILD target version ======
FROM rust-builder as builder-unique-target
@@ -77,12 +74,12 @@
ENV RUNTIME $RUNTIME
RUN apt-get -y update && \
- apt-get -y install curl git && \
- curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
- export NVM_DIR="$HOME/.nvm" && \
- [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
- nvm install v16.16.0 && \
- nvm use v16.16.0
+ apt-get -y install curl git && \
+ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \
+ export NVM_DIR="$HOME/.nvm" && \
+ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
+ nvm install v16.16.0 && \
+ nvm use v16.16.0
RUN git clone https://github.com/uniquenetwork/polkadot-launch -b feature/runtime-upgrade-testing
@@ -100,7 +97,6 @@
COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm /polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm
-
CMD export NVM_DIR="$HOME/.nvm" && \
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
.docker/Dockerfile-parachain-upgrade-datadiffbeforeafterboth1# ===== Rust builder =====2FROM ubuntu:20.04 as rust-builder3LABEL maintainer="Unique.Network"45ARG RUST_TOOLCHAIN=67ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN89ENV CARGO_HOME="/cargo-home"10ENV PATH="/cargo-home/bin:$PATH"11ENV TZ=UTC12RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone1314RUN apt-get update && \15 apt-get install -y curl cmake pkg-config libssl-dev git clang && \16 apt-get clean && \17 rm -r /var/lib/apt/lists/*1819RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none2021RUN rustup toolchain uninstall $(rustup toolchain list) && \22 rustup toolchain install $RUST_TOOLCHAIN && \23 rustup default $RUST_TOOLCHAIN && \24 rustup target list --installed && \25 rustup show26RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN2728RUN mkdir /unique_parachain29WORKDIR /unique_parachain3031# ===== BUILD target version ======32FROM rust-builder as builder-unique-target3334ARG PROFILE=release35ARG FEATURE=36ARG BRANCH=37ARG REPO_URL=3839COPY . /unique_parachain40WORKDIR /unique_parachain4142RUN cargo build --features=$FEATURE --$PROFILE4344# ===== BUILD POLKADOT =====45FROM rust-builder as builder-polkadot4647ARG POLKADOT_BUILD_BRANCH=48ENV POLKADOT_BUILD_BRANCH $POLKADOT_BUILD_BRANCH4950WORKDIR /unique_parachain5152RUN git clone -b $POLKADOT_BUILD_BRANCH --depth 1 https://github.com/paritytech/polkadot.git && \53 cd polkadot && \54 cargo build --release5556# ===== BUILD CHAINQL =====57FROM rust-builder as builder-chainql5859RUN mkdir chainql60WORKDIR /chainql6162RUN git clone --depth 1 https://github.com/CertainLach/chainql.git . && \63 cargo build --release6465# ===== RUN ======6667FROM ubuntu:20.046869ARG RUNTIME=70ENV RUNTIME $RUNTIME7172RUN apt-get -y update && \73 apt-get -y install curl git && \74 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \75 export NVM_DIR="$HOME/.nvm" && \76 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \77 nvm install v16.16.0 && \78 nvm use v16.16.07980RUN git clone https://github.com/uniquenetwork/polkadot-launch -b feature/parachain-forking8182RUN export NVM_DIR="$HOME/.nvm" && \83 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \84 cd /polkadot-launch && \85 npm install --global yarn && \86 yarn install8788RUN echo "$RUNTIME"8990COPY --from=builder-unique-target /unique_parachain/target/release/unique-collator /unique-chain/target/release/9192COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/9394COPY --from=builder-chainql /chainql/target/release/chainql /chainql/target/release/9596ARG FORK_FROM=97ENV FORK_FROM=$FORK_FROM98CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" FORK_FROM && \99 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \100 cd /polkadot-launch && \101 yarn start launch-config.json1021031# ===== Rust builder =====2FROM ubuntu:20.04 as rust-builder3LABEL maintainer="Unique.Network"45ARG RUST_TOOLCHAIN=67ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN8ENV CARGO_HOME="/cargo-home"9ENV PATH="/cargo-home/bin:$PATH"10ENV TZ=UTC11RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone1213RUN apt-get update && \14 apt-get install -y curl cmake pkg-config libssl-dev git clang && \15 apt-get clean && \16 rm -r /var/lib/apt/lists/*1718RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none1920RUN rustup toolchain uninstall $(rustup toolchain list) && \21 rustup toolchain install $RUST_TOOLCHAIN && \22 rustup default $RUST_TOOLCHAIN && \23 rustup target list --installed && \24 rustup show25RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN2627RUN mkdir /unique_parachain28WORKDIR /unique_parachain2930# ===== BUILD current version ======31FROM rust-builder as builder-unique-current3233ARG PROFILE=release34ARG FEATURE=35ARG MAINNET_BRANCH=36ARG REPO_URL=3738WORKDIR /unique_parachain3940RUN git clone $REPO_URL -b $MAINNET_BRANCH . && \41 cargo build --features=$FEATURE --$PROFILE4243# ===== BUILD target version ======44FROM rust-builder as builder-unique-target4546ARG PROFILE=release47ARG FEATURE=48ARG BRANCH=49ARG REPO_URL=5051COPY . /unique_parachain52WORKDIR /unique_parachain5354RUN cargo build --features=$FEATURE --$PROFILE5556# ===== BUILD POLKADOT =====57FROM rust-builder as builder-polkadot5859ARG POLKADOT_BUILD_BRANCH=60ENV POLKADOT_BUILD_BRANCH $POLKADOT_BUILD_BRANCH6162WORKDIR /unique_parachain6364RUN git clone -b $POLKADOT_BUILD_BRANCH --depth 1 https://github.com/paritytech/polkadot.git && \65 cd polkadot && \66 cargo build --release6768# ===== BUILD CHAINQL =====69FROM rust-builder as builder-chainql7071RUN mkdir chainql72WORKDIR /chainql7374RUN git clone -b v0.1.0 --depth 1 https://github.com/CertainLach/chainql.git . && \75 cargo build --release7677# ===== RUN ======7879FROM ubuntu:20.048081ARG RUNTIME=82ENV RUNTIME $RUNTIME8384RUN apt-get -y update && \85 apt-get -y install curl git && \86 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash && \87 export NVM_DIR="$HOME/.nvm" && \88 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \89 nvm install v16.16.0 && \90 nvm use v16.16.09192RUN git clone https://github.com/uniquenetwork/polkadot-launch.git -b feature/parachain-forking9394RUN export NVM_DIR="$HOME/.nvm" && \95 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \96 cd /polkadot-launch && \97 npm install --global yarn && \98 yarn install99100RUN echo "$RUNTIME"101102COPY --from=builder-unique-current /unique_parachain/target/release/unique-collator /unique-chain/current/release/103COPY --from=builder-unique-target /unique_parachain/target/release/unique-collator /unique-chain/target/release/104COPY --from=builder-unique-target /unique_parachain/target/release/wbuild/"$RUNTIME"-runtime/"$RUNTIME"_runtime.compact.compressed.wasm /unique-chain/target/release/wbuild/"$RUNTIME"-runtime/"$RUNTIME"_runtime.compact.compressed.wasm105106COPY --from=builder-chainql /chainql/target/release/chainql /chainql/target/release/107108COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/109COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm /polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm110111ARG FORK_FROM=112ENV FORK_FROM=$FORK_FROM113CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" FORK_FROM && \114 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \115 cd /polkadot-launch && \116 yarn start launch-config.json --test-upgrade-parachains.docker/docker-compose.tmp-forkless-data.j2diffbeforeafterboth--- a/.docker/docker-compose.tmp-forkless-data.j2
+++ b/.docker/docker-compose.tmp-forkless-data.j2
@@ -10,6 +10,8 @@
- "FEATURE={{ FEATURE }}"
- "RUNTIME={{ RUNTIME }}"
- "POLKADOT_BUILD_BRANCH={{ POLKADOT_BUILD_BRANCH }}"
+ - "MAINNET_TAG={{ MAINNET_TAG }}"
+ - "MAINNET_BRANCH={{ MAINNET_BRANCH }}"
- "FORK_FROM={{ FORK_FROM }}"
context: ../
dockerfile: .docker/Dockerfile-parachain-upgrade-data
@@ -23,7 +25,11 @@
- type: bind
source: ./forkless-config/fork.jsonnet
target: /polkadot-launch/fork.jsonnet
- read_only: true
+ read_only: true
+ - type: bind
+ source: ./forkless-config/typeNames.jsonnet
+ target: /polkadot-launch/typeNames.jsonnet
+ read_only: true
expose:
- 9944
- 9933
@@ -33,4 +39,4 @@
logging:
options:
max-size: "1m"
- max-file: "3"
\ No newline at end of file
+ max-file: "3"
.docker/forkless-config/launch-config-forkless-data.j2diffbeforeafterboth--- a/.docker/forkless-config/launch-config-forkless-data.j2
+++ b/.docker/forkless-config/launch-config-forkless-data.j2
@@ -1,6 +1,8 @@
{
"relaychain": {
"bin": "/polkadot/target/release/polkadot",
+ "upgradeBin": "/polkadot/target/release/polkadot",
+ "upgradeWasm": "/polkadot/target/release/wbuild/westend-runtime/westend_runtime.compact.compressed.wasm",
"chain": "westend-local",
"nodes": [
{
@@ -85,6 +87,8 @@
"parachains": [
{
"bin": "/unique-chain/target/release/unique-collator",
+ "upgradeBin": "/unique-chain/target/release/unique-collator",
+ "upgradeWasm": "/unique-chain/target/release/wbuild/{{ FEATURE }}/{{ RUNTIME }}_runtime.compact.compressed.wasm",
"id": "1000",
"balance": "1000000000000000000000000",
"chainRawInitializer": [
.envdiffbeforeafterboth--- a/.env
+++ b/.env
@@ -6,3 +6,7 @@
KUSAMA_MAINNET_BRANCH=release-v0.9.26
QUARTZ_MAINNET_TAG=quartz-v924012-2
+
+OPAL_FORK_FROM=wss://eu-ws-opal.unique.network:443
+QUARTZ_FORK_FROM=wss://eu-ws-quartz.unique.network:443
+UNIQUE_FORK_FROM=wss://eu-ws.unique.network:443
.github/workflows/forkless-update-data.ymldiffbeforeafterboth--- a/.github/workflows/forkless-update-data.yml
+++ b/.github/workflows/forkless-update-data.yml
@@ -19,37 +19,61 @@
env:
REPO_URL: ${{ github.server_url }}/${{ github.repository }}
-concurrency:
+concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
+ prepare-execution-marix:
+
+ name: Prepare execution matrix
+
+ runs-on: self-hosted-ci
+ outputs:
+ matrix: ${{ steps.create_matrix.outputs.matrix }}
+
+ steps:
+
+ - name: Clean Workspace
+ uses: AutoModality/action-clean@v1.1.0
+
+ # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
+ - uses: actions/checkout@v3
+ with:
+ ref: ${{ github.head_ref }} #Checking out head commit
+
+ - name: Read .env file
+ uses: xom9ikk/dotenv@v1.0.2
+
+ - name: Create Execution matrix
+ uses: CertainLach/create-matrix-action@v3
+ id: create_matrix
+ with:
+ matrix: |
+ network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, fork_from_address {${{ env.OPAL_FORK_FROM }}}
+ network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, fork_from_address {${{ env.QUARTZ_FORK_FROM }}}
+ network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}, fork_from_address {${{ env.UNIQUE_FORK_FROM }}}
+
+
+
forkless-update-data:
+ needs: prepare-execution-marix
# The type of runner that the job will run on
runs-on: [self-hosted-ci,large]
timeout-minutes: 1380
+
+
name: ${{ matrix.network }}
continue-on-error: true #Do not stop testing of matrix runs failed. As it decided during PR review - it required 50/50& Let's check it with false.
strategy:
matrix:
- include:
- - network: opal
- features: opal-runtime
- runtime: opal
- fork_from_address: wss://eu-ws-opal.unique.network:443
- - network: quartz
- features: quartz-runtime
- runtime: quartz
- fork_from_address: wss://eu-ws-quartz.unique.network:443
- - network: unique
- features: unique-runtime
- runtime: unique
- fork_from_address: wss://eu-ws.unique.network:443
+ include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}
+
steps:
- name: Skip if pull request is in Draft
@@ -91,6 +115,8 @@
RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}
POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}
+ MAINNET_TAG=${{ matrix.mainnet_tag }}
+ MAINNET_BRANCH=${{ matrix.mainnet_branch }}
FEATURE=${{ matrix.features }}
RUNTIME=${{ matrix.runtime }}
BRANCH=${{ github.head_ref }}
@@ -118,33 +144,48 @@
- name: Check if docker logs consist logs related to Runtime Upgrade testing.
if: success()
run: |
- counter=160
- function do_docker_logs {
- docker logs --details parachain-fork 2>&1
- }
- function is_started {
- echo "Check Docker logs"
- DOCKER_LOGS=$(do_docker_logs)
- if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then
- echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"
- return 0
- exit 0
+ counter=160
+ function check_container_status {
+ docker inspect -f {{.State.Running}} node-parachain
+ }
+ function do_docker_logs {
+ docker logs --details node-parachain 2>&1
+ }
+ function is_started {
+ if [ "$(check_container_status)" == "true" ]; then
+ echo "Container: node-parachain RUNNING";
+ echo "Check Docker logs"
+ DOCKER_LOGS=$(do_docker_logs)
+ if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then
+ echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"
+ return 0
+ elif [[ ${DOCKER_LOGS} = *"🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"* ]];then
+ echo "🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"
+ return 1
+ else
+ echo "Message not found in logs output, repeating..."
+ return 1
+ fi
+ else
+ echo "Container node-parachain not RUNNING"
+ echo "Halting all future checks"
+ exit 1
fi
- echo "Function is_started: Return 1"
- return 1
- }
- while ! is_started; do
+ exit 0
+ }
+ while ! is_started; do
echo "Waiting for special message in log files "
sleep 30s
counter=$(( $counter - 1 ))
echo "Counter: $counter"
if [ "$counter" -gt "0" ]; then
- continue
+ continue
else
- break
+ break
fi
- done
- exit 1
+ done
+ echo "Halting script"
+ exit 0
shell: bash
- name: Collect Docker Logs
@@ -152,10 +193,10 @@
uses: jwalton/gh-docker-logs@v2.2.0
with:
dest: './forkless-parachain-upgrade-data-logs.${{ matrix.features }}'
- images: 'node-parachain'
+ images: 'node-parachain'
- name: Show Docker logs
- run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/node-parachain.log'
+ run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/node-parachain.log'
- name: Stop running containers
if: always() # run this step always