git.delta.rocks / unique-network / refs/commits / b60949062fe8

difftreelog

fix forkless build and tests workflow steps

Konstantin Astakhov2023-01-25parent: #0d7ef96.patch.diff
in: master

9 files changed

deleted.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
deleted.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
deleted.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
deleted.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"
deleted.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"
added.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
+
+
modified.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
modified.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:
modified.github/workflows/try-runtime.ymldiffbeforeafterboth
after · .github/workflows/try-runtime.yml
1# 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