difftreelog
fix forkless build and tests workflow steps
in: master
9 files changed
.docker/Dockerfile-parachain-upgradediffbeforeafterboth--- a/.docker/Dockerfile-parachain-upgrade
+++ /dev/null
@@ -1,82 +0,0 @@
-ARG POLKADOT_BUILD_BRANCH
-FROM uniquenetwork/builder-polkadot:${POLKADOT_BUILD_BRANCH} as polkadot
-
-# ===== Rust builder =====
-FROM uniquenetwork/services:latest as rust-builder
-
-ARG RUST_TOOLCHAIN=
-
-ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN
-ENV CARGO_HOME="/cargo-home"
-ENV PATH="/cargo-home/bin:$PATH"
-ENV TZ=UTC
-RUN rustup toolchain uninstall $(rustup toolchain list) && \
- rustup toolchain install $RUST_TOOLCHAIN && \
- rustup default $RUST_TOOLCHAIN && \
- rustup target list --installed && \
- 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
-
-ARG PROFILE=release
-ARG NETWORK
-ARG MAINNET_BRANCH
-ARG REPO_URL
-
-WORKDIR /unique_parachain
-
-RUN git clone $REPO_URL -b $MAINNET_BRANCH . && \
- cargo build --features=${NETWORK}-runtime --$PROFILE
-
-# ===== BUILD target version ======
-FROM rust-builder as builder-unique-target
-
-ARG PROFILE=release
-ARG NETWORK
-
-COPY . /unique_parachain
-WORKDIR /unique_parachain
-
-RUN cargo build --features=${NETWORK}-runtime --$PROFILE
-
-# ===== RUN ======
-FROM ubuntu:22.04
-
-ARG NETWORK
-ARG POLKADOT_LAUNCH_BRANCH
-ARG WASM_NAME
-
-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
-
-RUN git clone https://github.com/uniquenetwork/polkadot-launch -b ${POLKADOT_LAUNCH_BRANCH}
-
-RUN export NVM_DIR="$HOME/.nvm" && \
- [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
- cd /polkadot-launch && \
- npm install --global yarn && \
- yarn install
-
-RUN echo "$NETWORK"
-
-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/"$WASM_NAME"-runtime/"$WASM_NAME"_runtime.compact.compressed.wasm /unique-chain/target/release/wbuild/"$WASM_NAME"-runtime/"$WASM_NAME"_runtime.compact.compressed.wasm
-
-COPY --from=polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
-COPY --from=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" && \
- cd /polkadot-launch && \
- yarn start launch-config.json --test-upgrade-parachains
.docker/Dockerfile-parachain-upgrade-datadiffbeforeafterboth--- a/.docker/Dockerfile-parachain-upgrade-data
+++ /dev/null
@@ -1,87 +0,0 @@
-ARG POLKADOT_BUILD_BRANCH
-FROM uniquenetwork/builder-polkadot:${POLKADOT_BUILD_BRANCH} as polkadot
-
-# ===== Rust builder =====
-FROM uniquenetwork/services:latest as rust-builder
-ARG RUST_TOOLCHAIN=
-
-ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN
-ENV CARGO_HOME="/cargo-home"
-ENV PATH="/cargo-home/bin:$PATH"
-ENV TZ=UTC
-
-RUN rustup toolchain uninstall $(rustup toolchain list) && \
- rustup toolchain install $RUST_TOOLCHAIN && \
- rustup default $RUST_TOOLCHAIN && \
- rustup target list --installed && \
- 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
-
-ARG PROFILE=release
-ARG NETWORK
-ARG MAINNET_BRANCH
-ARG REPO_URL
-
-WORKDIR /unique_parachain
-
-RUN git clone $REPO_URL -b $MAINNET_BRANCH . && \
- cargo build --features=${NETWORK}-runtime --$PROFILE
-
-# ===== BUILD target version ======
-FROM rust-builder as builder-unique-target
-
-ARG PROFILE=release
-ARG NETWORK
-
-COPY . /unique_parachain
-WORKDIR /unique_parachain
-
-RUN cargo build --features=${NETWORK}-runtime --$PROFILE
-
-# ===== RUN ======
-FROM ubuntu:22.04
-
-ARG NETWORK
-ARG REPLICA_FROM
-ENV REPLICA_FROM=${REPLICA_FROM}
-ARG POLKADOT_LAUNCH_BRANCH
-ARG WASM_NAME
-
-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
-
-RUN git clone https://github.com/uniquenetwork/polkadot-launch.git -b ${POLKADOT_LAUNCH_BRANCH}
-
-RUN export NVM_DIR="$HOME/.nvm" && \
- [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
- cd /polkadot-launch && \
- npm install --global yarn && \
- yarn install
-
-RUN echo "$NETWORK"
-RUN echo "$REPLICA_FROM"
-
-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/"$WASM_NAME"-runtime/"$WASM_NAME"_runtime.compact.compressed.wasm /unique-chain/target/release/wbuild/"$WASM_NAME"-runtime/"$WASM_NAME"_runtime.compact.compressed.wasm
-
-COPY --from=uniquenetwork/builder-chainql:latest /chainql/target/release/chainql /chainql/target/release/
-
-COPY --from=polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/
-COPY --from=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" PATH="$PATH:/chainql/target/release" REPLICA_FROM && \
- [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" && \
- cd /polkadot-launch && \
- yarn start launch-config.json --test-upgrade-parachains
.docker/Dockerfile-try-runtimediffbeforeafterboth--- a/.docker/Dockerfile-try-runtime
+++ /dev/null
@@ -1,41 +0,0 @@
-# ===== Rust builder =====
-FROM uniquenetwork/services:latest as rust-builder
-
-ARG RUST_TOOLCHAIN
-
-ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN
-ENV CARGO_HOME="/cargo-home"
-ENV PATH="/cargo-home/bin:$PATH"
-ENV TZ=UTC
-
-RUN rustup toolchain uninstall $(rustup toolchain list) && \
- rustup toolchain install $RUST_TOOLCHAIN && \
- rustup default $RUST_TOOLCHAIN && \
- rustup target list --installed && \
- rustup show
-RUN rustup target add wasm32-unknown-unknown --toolchain $RUST_TOOLCHAIN
-
-RUN mkdir /unique_parachain
-WORKDIR /unique_parachain
-
-
-# ===== BUILD ======
-FROM rust-builder as builder-unique
-
-ARG PROFILE=release
-ARG NETWORK
-ARG REPLICA_FROM
-ARG WASM_NAME
-ENV NETWORK $NETWORK
-ENV REPLICA_FROM $REPLICA_FROM
-ENV WASM_NAME $WASM_NAME
-
-COPY . /unique_parachain
-WORKDIR /unique_parachain
-
-
-RUN echo "Requested features: ${NETWORK}-runtime\n" && \
- echo "Fork from: $REPLICA_FROM\n" && \
- cargo build --features=try-runtime,${NETWORK}-runtime --release
-
-CMD cargo run --release --features ${NETWORK}-runtime,try-runtime -- try-runtime --runtime target/release/wbuild/${WASM_NAME}-runtime/${WASM_NAME}_runtime.compact.compressed.wasm -lruntime=debug -ltry-runtime::cli=debug on-runtime-upgrade --checks live --uri $REPLICA_FROM
.docker/docker-compose.tmp-forkless-data.j2diffbeforeafterboth--- a/.docker/docker-compose.tmp-forkless-data.j2
+++ /dev/null
@@ -1,43 +0,0 @@
-version: "3.5"
-
-services:
- node-parachain:
- build:
- args:
- - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}"
- - "BRANCH={{ BRANCH }}"
- - "REPO_URL={{ REPO_URL }}"
- - "NETWORK={{ NETWORK }}"
- - "POLKADOT_BUILD_BRANCH={{ POLKADOT_BUILD_BRANCH }}"
- - "POLKADOT_LAUNCH_BRANCH={{ POLKADOT_LAUNCH_BRANCH }}"
- - "MAINNET_TAG={{ MAINNET_TAG }}"
- - "MAINNET_BRANCH={{ MAINNET_BRANCH }}"
- - "REPLICA_FROM={{ REPLICA_FROM }}"
- - "WASM_NAME={{ WASM_NAME }}"
- context: ../
- dockerfile: .docker/Dockerfile-parachain-upgrade-data
- image: node-parachain
- container_name: node-parachain
- volumes:
- - type: bind
- source: ./launch-config-forkless-data.json
- target: /polkadot-launch/launch-config.json
- read_only: true
- - type: bind
- source: ./forkless-config/fork.jsonnet
- target: /polkadot-launch/fork.jsonnet
- read_only: true
- - type: bind
- source: ./forkless-config/typeNames.jsonnet
- target: /polkadot-launch/typeNames.jsonnet
- read_only: true
- expose:
- - 9944
- - 9933
- ports:
- - 127.0.0.1:9944:9944
- - 127.0.0.1:9933:9933
- logging:
- options:
- max-size: "1m"
- max-file: "3"
.docker/docker-compose.tmp-forkless-nodata.j2diffbeforeafterboth--- a/.docker/docker-compose.tmp-forkless-nodata.j2
+++ /dev/null
@@ -1,34 +0,0 @@
-version: "3.5"
-
-services:
- node-parachain:
- build:
- args:
- - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}"
- - "BRANCH={{ BRANCH }}"
- - "REPO_URL={{ REPO_URL }}"
- - "NETWORK={{ NETWORK }}"
- - "POLKADOT_BUILD_BRANCH={{ POLKADOT_BUILD_BRANCH }}"
- - "POLKADOT_LAUNCH_BRANCH={{ POLKADOT_LAUNCH_BRANCH }}"
- - "MAINNET_TAG={{ MAINNET_TAG }}"
- - "MAINNET_BRANCH={{ MAINNET_BRANCH }}"
- - "WASM_NAME={{ WASM_NAME }}"
- context: ../
- dockerfile: .docker/Dockerfile-parachain-upgrade
- image: node-parachain
- container_name: node-parachain
- volumes:
- - type: bind
- source: ./launch-config-forkless-nodata.json
- target: /polkadot-launch/launch-config.json
- read_only: true
- expose:
- - 9944
- - 9933
- ports:
- - 127.0.0.1:9944:9944
- - 127.0.0.1:9933:9933
- logging:
- options:
- max-size: "1m"
- max-file: "3"
.docker/docker-compose.xcm.j2diffbeforeafterboth--- /dev/null
+++ b/.docker/docker-compose.xcm.j2
@@ -0,0 +1,22 @@
+version: "3.5"
+
+services:
+ xcm_nodes:
+ image: uniquenetwork/ci-xcm-local:{{ NETWORK }}-{{ BUILD_TAG }}
+ container_name: xcm-{{ NETWORK }}-local
+ expose:
+ - 9844
+ - 9933
+ - 9944
+ - 9946
+ - 9947
+ - 9948
+ ports:
+ - 127.0.0.1:9844:9844
+ - 127.0.0.1:9933:9933
+ - 127.0.0.1:9944:9944
+ - 127.0.0.1:9946:9946
+ - 127.0.0.1:9947:9947
+ - 127.0.0.1:9948:9948
+
+
.github/workflows/forkless-update-data.ymldiffbeforeafterboth--- a/.github/workflows/forkless-update-data.yml
+++ b/.github/workflows/forkless-update-data.yml
@@ -46,12 +46,12 @@
runs-on: [self-hosted-ci,large]
timeout-minutes: 1380
- name: ${{ matrix.network }}-data
+ name: ${{ matrix.network }}-data-build
strategy:
matrix:
include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}
- 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.
+ continue-on-error: false #Do not stop testing of matrix runs failed. As it decided during PR review - it required 50/50& Let's check it with false.
steps:
- name: Clean Workspace
@@ -262,7 +262,7 @@
- name: Stop running containers
if: always() # run this step always
- run: docker-compose -f ".docker/docker-compose-forkless-data.${{ matrix.network }}.yml" down --volumes
+ run: docker-compose -f ".docker/docker-compose.forkless-data.${{ matrix.network }}.yml" down --volumes
- name: Remove builder cache
if: always() # run this step always
.github/workflows/forkless-update-nodata.ymldiffbeforeafterboth--- a/.github/workflows/forkless-update-nodata.yml
+++ b/.github/workflows/forkless-update-nodata.yml
@@ -47,9 +47,9 @@
timeout-minutes: 1380
- name: ${{ matrix.network }}-nodata
+ name: ${{ matrix.network }}-nodata-build
- 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.
+ continue-on-error: false #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:
.github/workflows/try-runtime.ymldiffbeforeafterboth1# Try-runtime checks2# https://cryptousetech.atlassian.net/wiki/spaces/CI/pages/2587656213/Try+runtime34# Triger: only call from main workflow(re-usable workflows)5on:6 workflow_call:78# A workflow run is made up of one or more jobs that can run sequentially or in parallel9jobs:10 prepare-execution-marix:1112 name: Prepare execution matrix1314 runs-on: self-hosted-ci15 outputs:16 matrix: ${{ steps.create_matrix.outputs.matrix }}1718 steps:1920 - name: Clean Workspace21 uses: AutoModality/action-clean@v1.1.02223 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it24 - uses: actions/checkout@v3.1.025 with:26 ref: ${{ github.head_ref }} #Checking out head commit2728 - name: Read .env file29 uses: xom9ikk/dotenv@v23031 - name: Create Execution matrix32 uses: CertainLach/create-matrix-action@v433 id: create_matrix34 with:35 matrix: |36 network {opal}, wasm_name {opal}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}}37 network {sapphire}, wasm_name {quartz}, replica_from_address {${{ env.SAPPHIRE_REPLICA_FROM }}}38 network {quartz}, wasm_name {quartz}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}}39 network {unique}, wasm_name {unique}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}}4041 try-runtime-build:42 needs: prepare-execution-marix4344 # The type of runner that the job will run on45 runs-on: [self-hosted-ci]46 continue-on-error: false #Do not stop testing of matrix runs failed. As it decided during PR review - it required 50/50& Let's check it with false.4748 name: ${{ matrix.network }}-try-runtime-build49 strategy:50 matrix:51 include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}5253 steps:5455 - name: Clean Workspace56 uses: AutoModality/action-clean@v1.1.05758 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it59 - uses: actions/checkout@v3.1.060 with:61 ref: ${{ github.head_ref }} #Checking out head commit6263 # Prepare SHA 64 - name: Prepare SHA65 uses: ./.github/actions/prepare6667 - name: Read .env file68 uses: xom9ikk/dotenv@v26970 - name: Log in to Docker Hub71 uses: docker/login-action@v2.1.072 with:73 username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}74 password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}7576 # Build main image for TRY-RUNTIME77 - name: Generate ENV related extend Dockerfile file78 uses: cuchi/jinja2-action@v1.2.079 with:80 template: .docker/Dockerfile-try-runtime.j281 output_file: .docker/Dockerfile-try-runtime.${{ matrix.network }}.yml82 variables: |83 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}84 NETWORK=${{ matrix.network }}85 WASM_NAME=${{ matrix.wasm_name }}86 REPLICA_FROM=${{ matrix.replica_from_address }}8788 - name: Show build Dockerfile89 run: cat .docker/Dockerfile-try-runtime.${{ matrix.network }}.yml9091 - name: Run find-and-replace to remove slashes from branch name92 uses: mad9000/actions-find-and-replace-string@393 id: branchname94 with:95 source: ${{ github.head_ref }}96 find: '/'97 replace: '-'9899 - name: Set build SHA100 shell: bash101 run: |102 echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV103104 - name: Build the stack105 run: cd .docker/ && docker build --no-cache --file ./Dockerfile-try-runtime.${{ matrix.network }}.yml --tag uniquenetwork/ci-tryruntime-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA ../106107 - name: Push docker image version108 run: docker push uniquenetwork/ci-tryruntime-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA109110 - name: Remove builder cache111 if: always() # run this step always112 run: |113 docker builder prune -f114 docker system prune -f115116117 try-runtime-tests:118 needs: [prepare-execution-marix, try-runtime-build]119 # The type of runner that the job will run on120 runs-on: [self-hosted-ci]121122 timeout-minutes: 600123124 name: ${{ matrix.network }}-try-runtime-tests125126 continue-on-error: false #Do not stop testing of matrix runs failed. As it decided during PR review - it required 50/50& Let's check it with false.127128 strategy:129 matrix:130 include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}131132 steps:133 - name: Skip if pull request is in Draft134 if: github.event.pull_request.draft == true135 run: exit 1136137 - name: Clean Workspace138 uses: AutoModality/action-clean@v1.1.0139140 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it141 - uses: actions/checkout@v3.1.0142 with:143 ref: ${{ github.head_ref }} #Checking out head commit144145 - name: Prepare146 uses: ./.github/actions/prepare147148 - name: Set build SHA149 shell: bash150 run: |151 echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV152153 - name: Run find-and-replace to remove slashes from branch name154 uses: mad9000/actions-find-and-replace-string@2155 id: branchname156 with:157 source: ${{ github.head_ref }}158 find: '/'159 replace: '-'160161 - name: Read .env file162 uses: xom9ikk/dotenv@v2163164 - name: Generate ENV related extend file for docker-compose165 uses: cuchi/jinja2-action@v1.2.0166 with:167 template: .docker/docker-compose.try-runtime.j2168 output_file: .docker/docker-compose.try-runtime.${{ matrix.network }}.yml169 variables: |170 NETWORK=${{ matrix.network }}171 BUILD_TAG=${{ steps.branchname.outputs.value }}-$BUILD_SHA172173 - name: Show build configuration174 run: cat .docker/docker-compose.try-runtime.${{ matrix.network }}.yml175176 - uses: actions/setup-node@v3.5.1177 with:178 node-version: 16179180 - name: Log in to Docker Hub181 uses: docker/login-action@v2.1.0182 with:183 username: ${{ secrets.CORE_DOCKERHUB_USERNAME }}184 password: ${{ secrets.CORE_DOCKERHUB_TOKEN }}185186 - name: Build the stack187 run: docker-compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300188189 - name: Collect Docker Logs190 if: success() || failure()191 uses: jwalton/gh-docker-logs@v2.2.1192 with:193 dest: './try-runtime-logs.${{ matrix.network }}'194195 - name: Show docker logs196 run: cat './try-runtime-logs.${{ matrix.network }}/try-runtime.log'197198 - name: Stop running containers199 if: always() # run this step always200 run: docker-compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" down201202 - name: Remove builder cache203 if: always() # run this step always204 run: |205 docker builder prune -f -a206 docker system prune -f207 docker image prune -f -a