From b60949062fe8a4e1a09355990d99e6e3783259eb Mon Sep 17 00:00:00 2001 From: Konstantin Astakhov Date: Wed, 25 Jan 2023 07:01:44 +0000 Subject: [PATCH] fix forkless build and tests workflow steps --- --- 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 --- 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 --- 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 --- 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" --- 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" --- /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 + + --- 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 --- 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: --- a/.github/workflows/try-runtime.yml +++ b/.github/workflows/try-runtime.yml @@ -34,16 +34,16 @@ with: matrix: | network {opal}, wasm_name {opal}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}} -# network {sapphire}, wasm_name {quartz}, replica_from_address {${{ env.SAPPHIRE_REPLICA_FROM }}} -# network {quartz}, wasm_name {quartz}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}} -# network {unique}, wasm_name {unique}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}} + network {sapphire}, wasm_name {quartz}, replica_from_address {${{ env.SAPPHIRE_REPLICA_FROM }}} + network {quartz}, wasm_name {quartz}, replica_from_address {${{ env.QUARTZ_REPLICA_FROM }}} + network {unique}, wasm_name {unique}, replica_from_address {${{ env.UNIQUE_REPLICA_FROM }}} try-runtime-build: needs: prepare-execution-marix # The type of runner that the job will run on runs-on: [self-hosted-ci] - 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. name: ${{ matrix.network }}-try-runtime-build strategy: -- gitstuff