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-datadiffbeforeafterboth--- a/.docker/Dockerfile-parachain-upgrade-data
+++ b/.docker/Dockerfile-parachain-upgrade-data
@@ -5,7 +5,6 @@
ARG RUST_TOOLCHAIN=
ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN
-
ENV CARGO_HOME="/cargo-home"
ENV PATH="/cargo-home/bin:$PATH"
ENV TZ=UTC
@@ -28,6 +27,19 @@
RUN mkdir /unique_parachain
WORKDIR /unique_parachain
+# ===== BUILD current version ======
+FROM rust-builder as builder-unique-current
+
+ARG PROFILE=release
+ARG FEATURE=
+ARG MAINNET_BRANCH=
+ARG REPO_URL=
+
+WORKDIR /unique_parachain
+
+RUN git clone $REPO_URL -b $MAINNET_BRANCH . && \
+ cargo build --features=$FEATURE --$PROFILE
+
# ===== BUILD target version ======
FROM rust-builder as builder-unique-target
@@ -59,7 +71,7 @@
RUN mkdir chainql
WORKDIR /chainql
-RUN git clone --depth 1 https://github.com/CertainLach/chainql.git . && \
+RUN git clone -b v0.1.0 --depth 1 https://github.com/CertainLach/chainql.git . && \
cargo build --release
# ===== RUN ======
@@ -70,14 +82,14 @@
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/parachain-forking
+RUN git clone https://github.com/uniquenetwork/polkadot-launch.git -b feature/parachain-forking
RUN export NVM_DIR="$HOME/.nvm" && \
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
@@ -87,17 +99,18 @@
RUN echo "$RUNTIME"
+COPY --from=builder-unique-current /unique_parachain/target/release/unique-collator /unique-chain/current/release/
COPY --from=builder-unique-target /unique_parachain/target/release/unique-collator /unique-chain/target/release/
+COPY --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.wasm
-COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
+COPY --from=builder-chainql /chainql/target/release/chainql /chainql/target/release/
-COPY --from=builder-chainql /chainql/target/release/chainql /chainql/target/release/
+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
ARG FORK_FROM=
ENV FORK_FROM=$FORK_FROM
CMD export NVM_DIR="$HOME/.nvm" PATH="$PATH:/chainql/target/release" FORK_FROM && \
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
cd /polkadot-launch && \
- yarn start launch-config.json
-
-
+ 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.ymldiffbeforeafterboth1name: upgrade replica23# Controls when the action will run.4on:5 # Triggers the workflow on push or pull request events but only for the master branch6 pull_request:7 branches:8 - master9 types:10 - opened11 - reopened12 - synchronize #commit(s) pushed to the pull request13 - ready_for_review1415 # Allows you to run this workflow manually from the Actions tab16 workflow_dispatch:1718#Define Workflow variables19env:20 REPO_URL: ${{ github.server_url }}/${{ github.repository }}2122concurrency: 23 group: ${{ github.workflow }}-${{ github.ref }}24 cancel-in-progress: true2526# A workflow run is made up of one or more jobs that can run sequentially or in parallel27jobs:2829 forkless-update-data:30 # The type of runner that the job will run on31 runs-on: [self-hosted-ci,large]32 timeout-minutes: 13803334 name: ${{ matrix.network }}3536 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.3738 strategy:39 matrix:40 include:41 - network: opal42 features: opal-runtime43 runtime: opal44 fork_from_address: wss://eu-ws-opal.unique.network:44345 - network: quartz46 features: quartz-runtime47 runtime: quartz48 fork_from_address: wss://eu-ws-quartz.unique.network:44349 - network: unique50 features: unique-runtime51 runtime: unique52 fork_from_address: wss://eu-ws.unique.network:4435354 steps:55 - name: Skip if pull request is in Draft56 # `if: github.event.pull_request.draft == true` should be kept here, at57 # the step level, rather than at the job level. The latter is not58 # recommended because when the PR is moved from "Draft" to "Ready to59 # review" the workflow will immediately be passing (since it was skipped),60 # even though it hasn't actually ran, since it takes a few seconds for61 # the workflow to start. This is also disclosed in:62 # https://github.community/t/dont-run-actions-on-draft-pull-requests/16817/1763 # That scenario would open an opportunity for the check to be bypassed:64 # 1. Get your PR approved65 # 2. Move it to Draft66 # 3. Push whatever commits you want67 # 4. Move it to "Ready for review"; now the workflow is passing (it was68 # skipped) and "Check reviews" is also passing (it won't be updated69 # until the workflow is finished)70 if: github.event.pull_request.draft == true71 run: exit 17273 - name: Clean Workspace74 uses: AutoModality/action-clean@v1.1.07576 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it77 - uses: actions/checkout@v378 with:79 ref: ${{ github.head_ref }} #Checking out head commit8081 - name: Read .env file82 uses: xom9ikk/dotenv@v1.0.28384 - name: Generate ENV related extend file for docker-compose85 uses: cuchi/jinja2-action@v1.2.086 with:87 template: .docker/docker-compose.tmp-forkless-data.j288 output_file: .docker/docker-compose.${{ matrix.network }}.yml89 variables: |90 REPO_URL=${{ github.server_url }}/${{ github.repository }}.git91 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}92 POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}93 POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}94 FEATURE=${{ matrix.features }}95 RUNTIME=${{ matrix.runtime }}96 BRANCH=${{ github.head_ref }}97 FORK_FROM=${{ matrix.fork_from_address }}9899 - name: Show build configuration100 run: cat .docker/docker-compose.${{ matrix.network }}.yml101102 - name: Generate launch-config-forkless-data.json103 uses: cuchi/jinja2-action@v1.2.0104 with:105 template: .docker/forkless-config/launch-config-forkless-data.j2106 output_file: .docker/launch-config-forkless-data.json107 variables: |108 FEATURE=${{ matrix.features }}109 RUNTIME=${{ matrix.runtime }}110111 - name: Show launch-config-forkless configuration112 run: cat .docker/launch-config-forkless-data.json113114115 - name: Build the stack116 run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --force-recreate --timeout 300117118 - name: Check if docker logs consist logs related to Runtime Upgrade testing.119 if: success()120 run: |121 counter=160122 function do_docker_logs {123 docker logs --details parachain-fork 2>&1124 }125 function is_started {126 echo "Check Docker logs"127 DOCKER_LOGS=$(do_docker_logs)128 if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then129 echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"130 return 0131 exit 0132 fi133 echo "Function is_started: Return 1"134 return 1135 }136 while ! is_started; do137 echo "Waiting for special message in log files "138 sleep 30s139 counter=$(( $counter - 1 ))140 echo "Counter: $counter"141 if [ "$counter" -gt "0" ]; then142 continue143 else144 break145 fi146 done147 exit 1148 shell: bash149150 - name: Collect Docker Logs151 if: success() || failure()152 uses: jwalton/gh-docker-logs@v2.2.0153 with:154 dest: './forkless-parachain-upgrade-data-logs.${{ matrix.features }}'155 images: 'node-parachain' 156157 - name: Show Docker logs158 run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/node-parachain.log' 159160 - name: Stop running containers161 if: always() # run this step always162 run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down1name: upgrade replica23# Controls when the action will run.4on:5 # Triggers the workflow on push or pull request events but only for the master branch6 pull_request:7 branches:8 - master9 types:10 - opened11 - reopened12 - synchronize #commit(s) pushed to the pull request13 - ready_for_review1415 # Allows you to run this workflow manually from the Actions tab16 workflow_dispatch:1718#Define Workflow variables19env:20 REPO_URL: ${{ github.server_url }}/${{ github.repository }}2122concurrency:23 group: ${{ github.workflow }}-${{ github.ref }}24 cancel-in-progress: true2526# A workflow run is made up of one or more jobs that can run sequentially or in parallel27jobs:2829 prepare-execution-marix:3031 name: Prepare execution matrix3233 runs-on: self-hosted-ci34 outputs:35 matrix: ${{ steps.create_matrix.outputs.matrix }}3637 steps:3839 - name: Clean Workspace40 uses: AutoModality/action-clean@v1.1.04142 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it43 - uses: actions/checkout@v344 with:45 ref: ${{ github.head_ref }} #Checking out head commit4647 - name: Read .env file48 uses: xom9ikk/dotenv@v1.0.24950 - name: Create Execution matrix51 uses: CertainLach/create-matrix-action@v352 id: create_matrix53 with:54 matrix: |55 network {opal}, runtime {opal}, features {opal-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, fork_from_address {${{ env.OPAL_FORK_FROM }}}56 network {quartz}, runtime {quartz}, features {quartz-runtime}, mainnet_branch {${{ env.QUARTZ_MAINNET_TAG }}}, fork_from_address {${{ env.QUARTZ_FORK_FROM }}}57 network {unique}, runtime {unique}, features {unique-runtime}, mainnet_branch {${{ env.UNIQUE_MAINNET_TAG }}}, fork_from_address {${{ env.UNIQUE_FORK_FROM }}}58596061 forkless-update-data:62 needs: prepare-execution-marix63 # The type of runner that the job will run on64 runs-on: [self-hosted-ci,large]65 timeout-minutes: 138066676869 name: ${{ matrix.network }}7071 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.7273 strategy:74 matrix:75 include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}767778 steps:79 - name: Skip if pull request is in Draft80 # `if: github.event.pull_request.draft == true` should be kept here, at81 # the step level, rather than at the job level. The latter is not82 # recommended because when the PR is moved from "Draft" to "Ready to83 # review" the workflow will immediately be passing (since it was skipped),84 # even though it hasn't actually ran, since it takes a few seconds for85 # the workflow to start. This is also disclosed in:86 # https://github.community/t/dont-run-actions-on-draft-pull-requests/16817/1787 # That scenario would open an opportunity for the check to be bypassed:88 # 1. Get your PR approved89 # 2. Move it to Draft90 # 3. Push whatever commits you want91 # 4. Move it to "Ready for review"; now the workflow is passing (it was92 # skipped) and "Check reviews" is also passing (it won't be updated93 # until the workflow is finished)94 if: github.event.pull_request.draft == true95 run: exit 19697 - name: Clean Workspace98 uses: AutoModality/action-clean@v1.1.099100 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it101 - uses: actions/checkout@v3102 with:103 ref: ${{ github.head_ref }} #Checking out head commit104105 - name: Read .env file106 uses: xom9ikk/dotenv@v1.0.2107108 - name: Generate ENV related extend file for docker-compose109 uses: cuchi/jinja2-action@v1.2.0110 with:111 template: .docker/docker-compose.tmp-forkless-data.j2112 output_file: .docker/docker-compose.${{ matrix.network }}.yml113 variables: |114 REPO_URL=${{ github.server_url }}/${{ github.repository }}.git115 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}116 POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }}117 POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }}118 MAINNET_TAG=${{ matrix.mainnet_tag }}119 MAINNET_BRANCH=${{ matrix.mainnet_branch }}120 FEATURE=${{ matrix.features }}121 RUNTIME=${{ matrix.runtime }}122 BRANCH=${{ github.head_ref }}123 FORK_FROM=${{ matrix.fork_from_address }}124125 - name: Show build configuration126 run: cat .docker/docker-compose.${{ matrix.network }}.yml127128 - name: Generate launch-config-forkless-data.json129 uses: cuchi/jinja2-action@v1.2.0130 with:131 template: .docker/forkless-config/launch-config-forkless-data.j2132 output_file: .docker/launch-config-forkless-data.json133 variables: |134 FEATURE=${{ matrix.features }}135 RUNTIME=${{ matrix.runtime }}136137 - name: Show launch-config-forkless configuration138 run: cat .docker/launch-config-forkless-data.json139140141 - name: Build the stack142 run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --force-recreate --timeout 300143144 - name: Check if docker logs consist logs related to Runtime Upgrade testing.145 if: success()146 run: |147 counter=160148 function check_container_status {149 docker inspect -f {{.State.Running}} node-parachain150 }151 function do_docker_logs {152 docker logs --details node-parachain 2>&1153 }154 function is_started {155 if [ "$(check_container_status)" == "true" ]; then156 echo "Container: node-parachain RUNNING";157 echo "Check Docker logs"158 DOCKER_LOGS=$(do_docker_logs)159 if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then160 echo "🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"161 return 0162 elif [[ ${DOCKER_LOGS} = *"🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"* ]];then163 echo "🚧 PARACHAINS' RUNTIME UPGRADE TESTING FAILED 🚧"164 return 1165 else166 echo "Message not found in logs output, repeating..."167 return 1168 fi169 else170 echo "Container node-parachain not RUNNING"171 echo "Halting all future checks"172 exit 1173 fi174 exit 0175 }176 while ! is_started; do177 echo "Waiting for special message in log files "178 sleep 30s179 counter=$(( $counter - 1 ))180 echo "Counter: $counter"181 if [ "$counter" -gt "0" ]; then182 continue183 else184 break185 fi186 done187 echo "Halting script"188 exit 0189 shell: bash190191 - name: Collect Docker Logs192 if: success() || failure()193 uses: jwalton/gh-docker-logs@v2.2.0194 with:195 dest: './forkless-parachain-upgrade-data-logs.${{ matrix.features }}'196 images: 'node-parachain'197198 - name: Show Docker logs199 run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/node-parachain.log'200201 - name: Stop running containers202 if: always() # run this step always203 run: docker-compose -f ".docker/docker-compose-forkless.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" down