From 6aa08763e9bf8de7f502d807036c4fdfbd905e96 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Tue, 16 Aug 2022 16:17:19 +0000 Subject: [PATCH] Merge commit '3d43cce592db583beac33fb177927a1b15d448de' into release-v927020 --- --- /dev/null +++ b/.docker/Dockerfile-try-runtime @@ -0,0 +1,73 @@ +# ===== Rust builder ===== +FROM ubuntu:20.04 as rust-builder +LABEL maintainer="Unique.Network" + +ARG RUST_TOOLCHAIN= + +ENV RUST_TOOLCHAIN $RUST_TOOLCHAIN +ENV CARGO_HOME="/cargo-home" +ENV PATH="/cargo-home/bin:$PATH" +ENV TZ=UTC +RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone + + +RUN apt-get update && \ + apt-get install -y curl cmake pkg-config libssl-dev git clang && \ + apt-get clean && \ + rm -r /var/lib/apt/lists/* + +RUN curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain none + +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 FEATURE= +ARG REPO_URL= +ARG BRANCH= + +RUN git clone $REPO_URL -b $BRANCH . && \ + cargo build --features=$FEATURE --$PROFILE + + +# ===== BUILD POLKADOT ===== +FROM rust-builder as builder-polkadot + +ARG POLKADOT_BUILD_BRANCH= +ENV POLKADOT_BUILD_BRANCH $POLKADOT_BUILD_BRANCH + +RUN mkdir /unique_parachain +WORKDIR /unique_parachain + +RUN git clone -b $POLKADOT_BUILD_BRANCH --depth 1 https://github.com/paritytech/polkadot.git && \ + cd polkadot && \ + cargo build --release + +# ===== RUN ====== + +FROM ubuntu:20.04 + +ARG FORM_FROM= +ARG FEATURE= + +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 + +COPY --from=builder-unique /unique_parachain/target/release/unique-collator /unique-chain/target/release/ +COPY --from=builder-polkadot /unique_parachain/polkadot/target/release/polkadot /polkadot/target/release/ \ No newline at end of file --- /dev/null +++ b/.docker/docker-compose-try-runtime.yml @@ -0,0 +1,19 @@ +version: "3.5" + +services: + try-runtime: + build: + context: ../ + dockerfile: .docker/Dockerfile-try-runtime + image: try-runtime + container_name: try-runtime + 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.try-runtime.j2 @@ -0,0 +1,15 @@ +version: "3.5" + +services: + try-runtime: + build: + args: + - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}" + - "BRANCH={{ BRANCH }}" + - "REPO_URL={{ REPO_URL }}" + - "FEATURE={{ FEATURE }}" + - "POLKADOT_BUILD_BRANCH={{ POLKADOT_BUILD_BRANCH }}" + - "FORK_FROM={{ FORK_FROM }}" + + command: cargo run --features=$FEATURE --release -- try-runtime on-runtime-upgrade live --uri $FORK_FROM + --- a/.github/workflows/build-test-master.yml +++ b/.github/workflows/build-test-master.yml @@ -10,6 +10,7 @@ - opened - reopened - synchronize #commit(s) pushed to the pull request + - ready_for_review # Allows you to run this workflow manually from the Actions tab workflow_dispatch: --- a/.github/workflows/codestyle.yml +++ b/.github/workflows/codestyle.yml @@ -8,6 +8,7 @@ - opened - reopened - synchronize + - ready_for_review jobs: rustfmt: --- a/.github/workflows/fork-update-withdata.yml +++ b/.github/workflows/fork-update-withdata.yml @@ -10,6 +10,7 @@ - opened - reopened - synchronize #commit(s) pushed to the pull request + - ready_for_review # Allows you to run this workflow manually from the Actions tab workflow_dispatch: --- a/.github/workflows/forkless-update-nodata.yml +++ b/.github/workflows/forkless-update-nodata.yml @@ -10,6 +10,7 @@ - opened - reopened - synchronize #commit(s) pushed to the pull request + - ready_for_review # Allows you to run this workflow manually from the Actions tab workflow_dispatch: --- a/.github/workflows/node_build_test.yml +++ b/.github/workflows/node_build_test.yml @@ -10,6 +10,7 @@ - opened - reopened - synchronize #commit(s) pushed to the pull request + - ready_for_review # Allows you to run this workflow manually from the Actions tab workflow_dispatch: --- a/.github/workflows/tests_codestyle.yml +++ b/.github/workflows/tests_codestyle.yml @@ -8,6 +8,8 @@ - opened - reopened - synchronize + - ready_for_review + jobs: code_style: runs-on: self-hosted-ci --- /dev/null +++ b/.github/workflows/try-runtime.yml @@ -0,0 +1,117 @@ +name: Try Runtime + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events but only for the master branch + pull_request: + branches: + - master + types: + - opened + - reopened + - synchronize #commit(s) pushed to the pull request + - ready_for_review + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +#Define Workflow variables +env: + REPO_URL: ${{ github.server_url }}/${{ github.repository }} + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + fork-update-withdata: + # The type of runner that the job will run on + runs-on: self-hosted-ci + + name: Build Container, Spin it Up an test + + 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: try-runtime,opal-runtime + fork_from_address: wss://eu-ws-opal.unique.network:443 + - network: Quartz + features: try-runtime,quartz-runtime + fork_from_address: wss://eu-ws-quartz.unique.network:443 + - network: Unique + features: try-runtime,unique-runtime + fork_from_address: wss://eu-ws.unique.network:443 + + steps: +# - name: Skip if pull request is in Draft + # `if: github.event.pull_request.draft == true` should be kept here, at + # the step level, rather than at the job level. The latter is not + # recommended because when the PR is moved from "Draft" to "Ready to + # review" the workflow will immediately be passing (since it was skipped), + # even though it hasn't actually ran, since it takes a few seconds for + # the workflow to start. This is also disclosed in: + # https://github.community/t/dont-run-actions-on-draft-pull-requests/16817/17 + # That scenario would open an opportunity for the check to be bypassed: + # 1. Get your PR approved + # 2. Move it to Draft + # 3. Push whatever commits you want + # 4. Move it to "Ready for review"; now the workflow is passing (it was + # skipped) and "Check reviews" is also passing (it won't be updated + # until the workflow is finished) +# if: github.event.pull_request.draft == true +# run: exit 1 + + + - 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: Generate ENV related extend file for docker-compose + uses: cuchi/jinja2-action@v1.2.0 + with: + template: .docker/docker-compose.try-runtime.j2 + output_file: .docker/docker-compose.try-runtime.${{ matrix.network }}.yml + variables: | + REPO_URL=${{ github.server_url }}/${{ github.repository }}.git + RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} + POLKADOT_BUILD_BRANCH=${{ env.POLKADOT_BUILD_BRANCH }} + FEATURE=${{ matrix.features }} + BRANCH=${{ github.head_ref }} + FORK_FROM=${{ matrix.fork_from_address }} + + - name: Show build configuration + run: cat .docker/docker-compose.try-runtime.${{ matrix.network }}.yml + + + - name: Build the stack + run: docker-compose -f ".docker/docker-compose-try-runtime.yml" -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up -d --build --force-recreate --timeout 300 + + + - name: Collect Docker Logs + if: success() || failure() + uses: jwalton/gh-docker-logs@v2.2.0 + with: + dest: './try-runtime-logs.${{ matrix.features }}' + images: 'try-runtime' + + - name: Tar logs + if: success() || failure() + run: tar cvzf ./try-runtime-logs.${{ matrix.features }}.tgz ./try-runtime-logs.${{ matrix.features }} + + - name: Upload logs to GitHub + if: success() || failure() + uses: actions/upload-artifact@master + with: + name: try-runtime-logs.${{ matrix.features }}.tgz + path: ./try-runtime-logs.${{ matrix.features }}.tgz + + - name: Stop running containers + if: always() # run this step always + run: docker-compose -f ".docker/docker-compose-try-runtime.yml" -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" down --- a/runtime/common/runtime_apis.rs +++ b/runtime/common/runtime_apis.rs @@ -717,13 +717,13 @@ #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade() -> (Weight, Weight) { + fn on_runtime_upgrade() -> (frame_support::pallet_prelude::Weight, frame_support::pallet_prelude::Weight) { log::info!("try-runtime::on_runtime_upgrade unique-chain."); let weight = Executive::try_runtime_upgrade().unwrap(); - (weight, RuntimeBlockWeights::get().max_block) + (weight, crate::config::substrate::RuntimeBlockWeights::get().max_block) } - fn execute_block_no_check(block: Block) -> Weight { + fn execute_block_no_check(block: Block) -> frame_support::pallet_prelude::Weight { Executive::execute_block_no_check(block) } } -- gitstuff