--- 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,89 +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 -ARG BRANCH -ARG REPO_URL - -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 --- /dev/null +++ b/.docker/Dockerfile-parachain-upgrade-data.j2 @@ -0,0 +1,78 @@ +ARG POLKADOT_BUILD_BRANCH +FROM uniquenetwork/builder-polkadot:{{ POLKADOT_BUILD_BRANCH }} as polkadot + +# ===== Rust builder ===== +FROM uniquenetwork/services:latest as rust-builder + +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 + +WORKDIR /unique_parachain + +RUN git clone https://github.com/UniqueNetwork/unique-chain.git -b {{ MAINNET_BRANCH }} . && \ + cargo build --features={{ NETWORK }}-runtime --$PROFILE + +# ===== BUILD target version ====== +FROM rust-builder as builder-unique-target + +ARG PROFILE=release + +COPY . /unique_parachain +WORKDIR /unique_parachain + +RUN cargo build --features={{ NETWORK }}-runtime --$PROFILE + +# ===== RUN ====== +FROM ubuntu:22.04 + +ENV REPLICA_FROM={{ REPLICA_FROM }} + +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 + +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=builder-unique-target /unique_parachain/.docker/forkless-config/launch-config-forkless-data.json /polkadot-launch/launch-config.json +COPY --from=builder-unique-target /unique_parachain/.docker/forkless-config/fork.jsonnet /polkadot-launch/fork.jsonnet +COPY --from=builder-unique-target /unique_parachain/.docker/forkless-config/typeNames.jsonnet /polkadot-launch/typeNames.jsonnet + +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 --- /dev/null +++ b/.docker/Dockerfile-parachain-upgrade.j2 @@ -0,0 +1,72 @@ +ARG POLKADOT_BUILD_BRANCH +FROM uniquenetwork/builder-polkadot:{{ POLKADOT_BUILD_BRANCH }} as polkadot + +# ===== Rust builder ===== +FROM uniquenetwork/services:latest as rust-builder + +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 + +WORKDIR /unique_parachain + +RUN git clone https://github.com/UniqueNetwork/unique-chain.git -b {{ MAINNET_BRANCH }} . && \ + cargo build --features={{ NETWORK }}-runtime --$PROFILE + +# ===== BUILD target version ====== +FROM rust-builder as builder-unique-target + +ARG PROFILE=release + +COPY . /unique_parachain +WORKDIR /unique_parachain + +RUN cargo build --features={{ NETWORK }}-runtime --$PROFILE + +# ===== RUN ====== +FROM ubuntu:22.04 + +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 + +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=builder-unique-target /unique_parachain/.docker/forkless-config/launch-config-forkless-nodata.json /polkadot-launch/launch-config.json + +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-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 --- /dev/null +++ b/.docker/Dockerfile-try-runtime.j2 @@ -0,0 +1,32 @@ +# ===== Rust builder ===== +FROM uniquenetwork/services:latest as rust-builder + +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 + +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 }} --- /dev/null +++ b/.docker/docker-compose.forkless-data.j2 @@ -0,0 +1,12 @@ +version: "3.5" + +services: + forkless-data: + image: uniquenetwork/ci-forkless-data-local:{{ NETWORK }}-{{ BUILD_TAG }} + container_name: forkless-data + expose: + - 9944 + - 9933 + ports: + - 127.0.0.1:9944:9944 + - 127.0.0.1:9933:9933 --- /dev/null +++ b/.docker/docker-compose.forkless-nodata.j2 @@ -0,0 +1,12 @@ +version: "3.5" + +services: + forkless-nodata: + image: uniquenetwork/ci-forkless-nodata-local:{{ NETWORK }}-{{ BUILD_TAG }} + container_name: forkless-nodata + expose: + - 9944 + - 9933 + ports: + - 127.0.0.1:9944:9944 + - 127.0.0.1:9933:9933 \ No newline at end of file --- 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" --- a/.docker/docker-compose.tmp-try-runtime.j2 +++ /dev/null @@ -1,24 +0,0 @@ -version: "3.5" - -services: - try-runtime: - build: - context: ../ - dockerfile: .docker/Dockerfile-try-runtime - args: - - "RUST_TOOLCHAIN={{ RUST_TOOLCHAIN }}" - - "NETWORK={{ NETWORK }}" - - "REPLICA_FROM={{ REPLICA_FROM }}" - - "WASM_NAME={{ WASM_NAME }}" - 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" --- a/.docker/docker-compose.tmp-xcm-tests.j2 +++ /dev/null @@ -1,27 +0,0 @@ -version: "3.5" - -services: - xcm_nodes: - image: uniquenetwork/xcm-{{ NETWORK }}-testnet-local:latest - container_name: xcm-{{ NETWORK }}-testnet-local - expose: - - 9844 - - 9933 - - 9944 - - 9946 - - 9947 - - 9948 - - 9949 - 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 - - 127.0.0.1:9949:9949 - logging: - options: - max-size: "1m" - max-file: "3" - --- /dev/null +++ b/.docker/docker-compose.try-runtime.j2 @@ -0,0 +1,13 @@ +version: "3.5" + +services: + try-runtime: + image: uniquenetwork/ci-tryruntime-local:{{ NETWORK }}-{{ BUILD_TAG }} + container_name: try-runtime + expose: + - 9944 + - 9933 + ports: + - 127.0.0.1:9944:9944 + - 127.0.0.1:9933:9933 + --- /dev/null +++ b/.docker/docker-compose.xcm.j2 @@ -0,0 +1,24 @@ +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 + - 9949 + 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 + - 127.0.0.1:9949:9949 + + --- /dev/null +++ b/.github/actions/prepare/action.yml @@ -0,0 +1,16 @@ +# .github/actions/prepare/action.yml +name: 'Preparation' +description: '' +runs: + using: "composite" + steps: + - name: Setup Environment (PR) + if: ${{ github.event_name == 'pull_request' }} + shell: bash + run: | + echo "LAST_COMMIT_SHA=${{ github.event.pull_request.head.sha }}" >> ${GITHUB_ENV} + - name: Setup Environment (Push) + if: ${{ github.event_name == 'push' }} + shell: bash + run: | + echo "LAST_COMMIT_SHA=${GITHUB_SHA}" >> ${GITHUB_ENV} \ No newline at end of file --- a/.github/workflows/ci-develop.yml +++ b/.github/workflows/ci-develop.yml @@ -19,37 +19,54 @@ yarn-dev: if: github.event.pull_request.draft == false # Conditional check for draft per job. uses: ./.github/workflows/yarn-dev.yml + secrets: inherit unit-test: if: github.event.pull_request.draft == false # Conditional check for draft per job. uses: ./.github/workflows/unit-test.yml + secrets: inherit canary: - if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'canary')) }} # Conditional check for draft & labels per job. + if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'CI-canary')) }} # Conditional check for draft & labels per job. uses: ./.github/workflows/canary.yml secrets: inherit # pass all secrets from initial workflow to nested xcm: - if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'xcm')) }} # Conditional check for draft & labels per job. + if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'CI-xcm')) }} # Conditional check for draft & labels per job. uses: ./.github/workflows/xcm.yml secrets: inherit # pass all secrets from initial workflow to nested collator-selection: if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'CI-collator-selection')) }} # Conditional check for draft & labels per job. uses: ./.github/workflows/collator-selection.yml + secrets: inherit - forkless: - if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'forkless')) }} # Conditional check for draft & labels per job. - uses: ./.github/workflows/forkless.yml - + # forkless: + # if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'CI-forkless')) }} # Conditional check for draft & labels per job. + # uses: ./.github/workflows/forkless.yml + # secrets: inherit + + forkless-update-data: + if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'CI-forkless')) }} # Conditional check for draft & labels per job. + uses: ./.github/workflows/forkless-update-data.yml + secrets: inherit # pass all secrets from initial workflow to nested + + forkless-update-no-data: + if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'CI-forkless')) }} # Conditional check for draft & labels per job. + uses: ./.github/workflows/forkless-update-nodata.yml + secrets: inherit # pass all secrets from initial workflow to nested + + try-runtime: + if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'CI-forkless')) }} # Conditional check for draft & labels per job. + uses: ./.github/workflows/try-runtime.yml + secrets: inherit # pass all secrets from initial workflow to nested + node-only-update: - if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'node-only-update')) }} # Conditional check for draft & labels per job. + if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'CI-node-only-update')) }} # Conditional check for draft & labels per job. uses: ./.github/workflows/node-only-update.yml - - # integration: - # if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'integration')) }} # Conditional check for draft & labels per job. - # uses: ./.github/workflows/integration-tests.yml + secrets: inherit codestyle: if: github.event.pull_request.draft == false # Conditional check for draft per job. uses: ./.github/workflows/codestyle.yml + secrets: inherit \ No newline at end of file --- a/.github/workflows/codestyle.yml +++ b/.github/workflows/codestyle.yml @@ -13,15 +13,13 @@ steps: - name: Clean Workspace uses: AutoModality/action-clean@v1.1.0 - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} - name: Install latest nightly - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@nightly with: - toolchain: nightly - default: true - target: wasm32-unknown-unknown + targets: wasm32-unknown-unknown components: rustfmt, clippy - name: Run cargo fmt run: cargo fmt -- --check # In that mode it returns only exit code. @@ -34,10 +32,10 @@ steps: - name: Clean Workspace uses: AutoModality/action-clean@v1.1.0 - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v3.5.1 with: node-version: 16 - name: Install modules @@ -49,15 +47,13 @@ if: ${{ false }} runs-on: [ self-hosted-ci ] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 - name: Install substrate dependencies run: sudo apt install -y libssl-dev pkg-config libclang-dev clang protobuf-compiler - name: Install latest nightly - uses: actions-rs/toolchain@v1 + uses: dtolnay/rust-toolchain@nightly with: - toolchain: nightly - default: true - target: wasm32-unknown-unknown + targets: wasm32-unknown-unknown components: rustfmt, clippy - name: Run cargo check run: cargo clippy -- -Dwarnings --- a/.github/workflows/execution-matrix.yml +++ b/.github/workflows/execution-matrix.yml @@ -24,7 +24,7 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -32,7 +32,7 @@ uses: xom9ikk/dotenv@v2 - name: Create Execution matrix - uses: CertainLach/create-matrix-action@v3 + uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | --- a/.github/workflows/forkless-update-data.yml +++ b/.github/workflows/forkless-update-data.yml @@ -9,7 +9,7 @@ # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - execution-marix: + prepare-execution-marix: name: Prepare execution matrix @@ -23,7 +23,7 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -31,7 +31,7 @@ uses: xom9ikk/dotenv@v2 - name: Create Execution matrix - uses: CertainLach/create-matrix-action@v3 + uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | @@ -40,16 +40,16 @@ network {opal}, wasm_name {opal}, mainnet_branch {${{ env.OPAL_MAINNET_BRANCH }}}, replica_from_address {${{ env.OPAL_REPLICA_FROM }}}, relay_branch {${{ env.UNIQUEWEST_MAINNET_BRANCH }}} network {sapphire}, wasm_name {quartz}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, replica_from_address {${{ env.SAPPHIRE_REPLICA_FROM }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}} - forkless-update-data: - needs: execution-marix + forkless-data-build: + needs: prepare-execution-marix # The type of runner that the job will run on runs-on: [self-hosted-ci,large] timeout-minutes: 1380 - name: ${{ matrix.network }}-data + name: ${{ matrix.network }}-data-build strategy: matrix: - include: ${{fromJson(needs.execution-marix.outputs.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. @@ -58,64 +58,164 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file uses: xom9ikk/dotenv@v2 - - name: Generate ENV related extend file for docker-compose + # Prepare SHA + - name: Prepare SHA + uses: ./.github/actions/prepare + + # Build main image for FORKLESS-UPDATE-NODATA + - name: Generate ENV related extend Dockerfile file uses: cuchi/jinja2-action@v1.2.0 with: - template: .docker/docker-compose.tmp-forkless-data.j2 - output_file: .docker/docker-compose-forkless-data.${{ matrix.network }}.yml + template: .docker/Dockerfile-parachain-upgrade-data.j2 + output_file: .docker/Dockerfile-parachain-upgrade-data.${{ matrix.network }}.yml variables: | - REPO_URL=${{ github.server_url }}/${{ github.repository }}.git RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} + NETWORK=${{ matrix.network }} + MAINNET_BRANCH=${{ matrix.mainnet_branch }} + WASM_NAME=${{ matrix.wasm_name }} POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }} POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }} - # POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }} - # MAINNET_TAG=${{ matrix.mainnet_tag }} - MAINNET_BRANCH=${{ matrix.mainnet_branch }} - NETWORK=${{ matrix.network }} - # BRANCH=${{ github.head_ref }} REPLICA_FROM=${{ matrix.replica_from_address }} - WASM_NAME=${{ matrix.wasm_name }} - name: Show build configuration - run: cat .docker/docker-compose-forkless-data.${{ matrix.network }}.yml + run: cat .docker/Dockerfile-parachain-upgrade-data.${{ matrix.network }}.yml - name: Generate launch-config-forkless-data.json uses: cuchi/jinja2-action@v1.2.0 with: template: .docker/forkless-config/launch-config-forkless-data.j2 - output_file: .docker/launch-config-forkless-data.json + output_file: .docker/forkless-config/launch-config-forkless-data.json variables: | - NETWORK=${{ matrix.network }} - REPLICA_FROM=${{ matrix.replica_from_address }} - WASM_NAME=${{ matrix.wasm_name}} + WASM_NAME=${{ matrix.wasm_name }} RELAY_CHAIN_TYPE=${{ env.RELAY_CHAIN_TYPE }} + REPLICA_FROM=${{ matrix.replica_from_address }} - name: Show launch-config-forkless configuration - run: cat .docker/launch-config-forkless-data.json + run: cat .docker/forkless-config/launch-config-forkless-data.json + - name: Run find-and-replace to remove slashes from branch name + uses: mad9000/actions-find-and-replace-string@4 + id: branchname + with: + source: ${{ github.head_ref }} + find: '/' + replace: '-' + + - name: Set build SHA + shell: bash + run: | + echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV + - name: Build the stack - run: docker-compose -f ".docker/docker-compose-forkless-data.${{ matrix.network }}.yml" up -d --build --force-recreate --timeout 300 + run: cd .docker/ && docker build --no-cache --file ./Dockerfile-parachain-upgrade-data.${{ matrix.network }}.yml --tag uniquenetwork/ci-forkless-data-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA ../ + + - name: Log in to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + + - name: Push docker image version + run: docker push uniquenetwork/ci-forkless-data-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA + + - name: Remove builder cache + if: always() # run this step always + run: | + docker builder prune -f + docker system prune -f + + forkless-data-tests: + needs: [prepare-execution-marix, forkless-data-build] + # The type of runner that the job will run on + runs-on: [self-hosted-ci, large] + timeout-minutes: 600 + + name: ${{ matrix.network }}-data-tests + + 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: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}} + + steps: + - name: Skip if pull request is in Draft + 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.1.0 + with: + ref: ${{ github.head_ref }} #Checking out head commit + + - name: Prepare + uses: ./.github/actions/prepare + + - name: Set build SHA + shell: bash + run: | + echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV + + - name: Run find-and-replace to remove slashes from branch name + uses: mad9000/actions-find-and-replace-string@4 + id: branchname + with: + source: ${{ github.head_ref }} + find: '/' + replace: '-' + + - name: Read .env file + uses: xom9ikk/dotenv@v2 + + - name: Generate ENV related extend file for docker-compose + uses: cuchi/jinja2-action@v1.2.0 + with: + template: .docker/docker-compose.forkless-data.j2 + output_file: .docker/docker-compose.forkless-data.${{ matrix.network }}.yml + variables: | + NETWORK=${{ matrix.network }} + BUILD_TAG=${{ steps.branchname.outputs.value }}-$BUILD_SHA + + - name: Show build configuration + run: cat .docker/docker-compose.forkless-data.${{ matrix.network }}.yml + + - name: Log in to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + + - name: Build the stack + run: docker-compose -f ".docker/docker-compose.forkless-data.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300 + + - uses: actions/setup-node@v3.5.1 + with: + node-version: 16 + - name: Check if docker logs consist logs related to Runtime Upgrade testing. if: success() run: | counter=160 function check_container_status { - docker inspect -f {{.State.Running}} node-parachain + docker inspect -f {{.State.Running}} forkless-data } function do_docker_logs { - docker logs --details node-parachain 2>&1 + docker logs --details forkless-data 2>&1 } function is_started { if [ "$(check_container_status)" == "true" ]; then - echo "Container: node-parachain RUNNING"; + echo "Container: forkless-data RUNNING"; echo "Check Docker logs" DOCKER_LOGS=$(do_docker_logs) if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then @@ -129,7 +229,7 @@ return 1 fi else - echo "Container node-parachain not RUNNING" + echo "Container forkless-data not RUNNING" echo "Halting all future checks" exit 1 fi @@ -152,18 +252,17 @@ - name: Collect Docker Logs if: success() || failure() - uses: jwalton/gh-docker-logs@v2.2.0 + uses: jwalton/gh-docker-logs@v2.2.1 with: dest: './forkless-parachain-upgrade-data-logs.${{ matrix.features }}' - images: 'node-parachain' - name: Show Docker logs if: success() || failure() - run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/node-parachain.log' + run: cat './forkless-parachain-upgrade-data-logs.${{ matrix.features }}/forkless-data.log' - 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 @@ -8,7 +8,7 @@ # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - execution-marix: + prepare-execution-marix: name: Prepare execution matrix @@ -22,7 +22,7 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -30,7 +30,7 @@ uses: xom9ikk/dotenv@v2 - name: Create Execution matrix - uses: CertainLach/create-matrix-action@v3 + uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | @@ -40,86 +40,183 @@ network {sapphire}, wasm_name {quartz}, mainnet_branch {${{ env.SAPPHIRE_MAINNET_BRANCH }}}, relay_branch {${{ env.UNIQUEEAST_MAINNET_BRANCH }}} - forkless-update-nodata: - needs: execution-marix + forkless-nodata-build: + needs: prepare-execution-marix # The type of runner that the job will run on runs-on: [self-hosted-ci,large] 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. strategy: matrix: - include: ${{fromJson(needs.execution-marix.outputs.matrix)}} + include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}} steps: - 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 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit - name: Read .env file uses: xom9ikk/dotenv@v2 - - name: Generate ENV related extend file for docker-compose + # Prepare SHA + - name: Prepare SHA + uses: ./.github/actions/prepare + + - name: Log in to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + + # Build main image for FORKLESS-UPDATE-NODATA + - name: Generate ENV related extend Dockerfile file uses: cuchi/jinja2-action@v1.2.0 with: - template: .docker/docker-compose.tmp-forkless-nodata.j2 - output_file: .docker/docker-compose.${{ matrix.network }}.yml + template: .docker/Dockerfile-parachain-upgrade.j2 + output_file: .docker/Dockerfile-parachain-upgrade.${{ matrix.network }}.yml variables: | - REPO_URL=${{ github.server_url }}/${{ github.repository }}.git RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} - POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }} - POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }} - # POLKADOT_MAINNET_BRANCH=${{ env.POLKADOT_MAINNET_BRANCH }} - # MAINNET_TAG=${{ matrix.mainnet_tag }} - MAINNET_BRANCH=${{ matrix.mainnet_branch }} NETWORK=${{ matrix.network }} - # BRANCH=${{ github.head_ref }} + MAINNET_BRANCH=${{ matrix.mainnet_branch }} WASM_NAME=${{ matrix.wasm_name }} + POLKADOT_BUILD_BRANCH=${{ matrix.relay_branch }} + POLKADOT_LAUNCH_BRANCH=${{ env.POLKADOT_LAUNCH_BRANCH }} - - name: Show build configuration - run: cat .docker/docker-compose.${{ matrix.network }}.yml + - name: Show build Dockerfile + run: cat .docker/Dockerfile-parachain-upgrade.${{ matrix.network }}.yml - name: Generate launch-config-forkless-nodata.json uses: cuchi/jinja2-action@v1.2.0 with: template: .docker/forkless-config/launch-config-forkless-nodata.j2 - output_file: .docker/launch-config-forkless-nodata.json + output_file: .docker/forkless-config/launch-config-forkless-nodata.json variables: | - NETWORK=${{ matrix.network }} WASM_NAME=${{ matrix.wasm_name }} RELAY_CHAIN_TYPE=${{ env.RELAY_CHAIN_TYPE }} - name: Show launch-config-forkless configuration - run: cat .docker/launch-config-forkless-nodata.json + run: cat .docker/forkless-config/launch-config-forkless-nodata.json + + - name: Run find-and-replace to remove slashes from branch name + uses: mad9000/actions-find-and-replace-string@4 + id: branchname + with: + source: ${{ github.head_ref }} + find: '/' + replace: '-' + + - name: Set build SHA + shell: bash + run: | + echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV + + - name: Build the stack + run: cd .docker/ && docker build --no-cache --file ./Dockerfile-parachain-upgrade.${{ matrix.network }}.yml --tag uniquenetwork/ci-forkless-nodata-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA ../ + + - name: Push docker image version + run: docker push uniquenetwork/ci-forkless-nodata-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA + + - name: Remove builder cache + if: always() # run this step always + run: | + docker builder prune -f + docker system prune -f + + + forkless-nodata-tests: + needs: [prepare-execution-marix, forkless-nodata-build] + # The type of runner that the job will run on + runs-on: [self-hosted-ci, large] + + timeout-minutes: 600 + + name: ${{ matrix.network }}-nodata-tests + + 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: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}} + + steps: + - name: Skip if pull request is in Draft + 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.1.0 + with: + ref: ${{ github.head_ref }} #Checking out head commit + + - name: Prepare + uses: ./.github/actions/prepare + + - name: Set build SHA + shell: bash + run: | + echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV - - uses: actions/setup-node@v3 + - name: Run find-and-replace to remove slashes from branch name + uses: mad9000/actions-find-and-replace-string@4 + id: branchname with: - node-version: 16 + source: ${{ github.head_ref }} + find: '/' + replace: '-' + + - name: Read .env file + uses: xom9ikk/dotenv@v2 + - name: Generate ENV related extend file for docker-compose + uses: cuchi/jinja2-action@v1.2.0 + with: + template: .docker/docker-compose.forkless-nodata.j2 + output_file: .docker/docker-compose.forkless-nodata.${{ matrix.network }}.yml + variables: | + NETWORK=${{ matrix.network }} + BUILD_TAG=${{ steps.branchname.outputs.value }}-$BUILD_SHA + + - name: Show build configuration + run: cat .docker/docker-compose.forkless-nodata.${{ matrix.network }}.yml + + - name: Log in to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + - name: Build the stack - run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --force-recreate --timeout 300 + run: docker-compose -f ".docker/docker-compose.forkless-nodata.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300 + - uses: actions/setup-node@v3.5.1 + with: + node-version: 16 + - name: Check if docker logs consist logs related to Runtime Upgrade testing. if: success() run: | counter=160 function check_container_status { - docker inspect -f {{.State.Running}} node-parachain + docker inspect -f {{.State.Running}} forkless-nodata } function do_docker_logs { - docker logs --details node-parachain 2>&1 + docker logs --details forkless-nodata 2>&1 } function is_started { if [ "$(check_container_status)" == "true" ]; then - echo "Container: node-parachain RUNNING"; + echo "Container: forkless-nodata RUNNING"; echo "Check Docker logs" DOCKER_LOGS=$(do_docker_logs) if [[ ${DOCKER_LOGS} = *"🛸 PARACHAINS' RUNTIME UPGRADE TESTING COMPLETE 🛸"* ]];then @@ -133,7 +230,7 @@ return 1 fi else - echo "Container node-parachain not RUNNING" + echo "Container forkless-nodata not RUNNING" echo "Halting all future checks" exit 1 fi @@ -156,21 +253,20 @@ - name: Collect Docker Logs if: success() || failure() - uses: jwalton/gh-docker-logs@v2.2.0 + uses: jwalton/gh-docker-logs@v2.2.1 with: - dest: './forkless-parachain-upgrade-nodata-logs.${{ matrix.features }}' - images: 'node-parachain' + dest: './forkless-parachain-upgrade-nodata-logs.${{ matrix.network }}' - name: Show docker logs if: success() || failure() - run: cat './forkless-parachain-upgrade-nodata-logs.${{ matrix.features }}/node-parachain.log' + run: cat './forkless-parachain-upgrade-nodata-logs.${{ matrix.network }}/forkless-nodata.log' - name: Run Parallel tests working-directory: tests run: | yarn install yarn add mochawesome - node scripts/readyness.js + ./scripts/wait_for_first_block.sh echo "Ready to start tests" yarn polkadot-types NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW} @@ -178,7 +274,7 @@ RPC_URL: http://127.0.0.1:9933/ - name: Test Report Parallel - uses: phoenix-actions/test-reporting@v8 + uses: phoenix-actions/test-reporting@v10 id: test-report-parallel if: success() || failure() # run this step even if previous step failed with: @@ -193,7 +289,7 @@ run: | yarn install yarn add mochawesome - node scripts/readyness.js + ./scripts/wait_for_first_block.sh echo "Ready to start tests" yarn polkadot-types NOW=$(date +%s) && yarn testSequential --reporter mochawesome --reporter-options reportFilename=test-sequential-${NOW} @@ -201,7 +297,7 @@ RPC_URL: http://127.0.0.1:9933/ - name: Test Report Sequential - uses: phoenix-actions/test-reporting@v8 + uses: phoenix-actions/test-reporting@v10 id: test-report-sequential if: success() || failure() # run this step even if previous step failed with: @@ -212,7 +308,7 @@ - name: Stop running containers if: always() # run this step always - run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" down + run: docker-compose -f ".docker/docker-compose.forkless-nodata.${{ matrix.network }}.yml" down - name: Remove builder cache if: always() # run this step always --- a/.github/workflows/forkless.yml +++ b/.github/workflows/forkless.yml @@ -1,20 +1,23 @@ # Intermediate Nested Workflow for calling subworkflows as a parallel tasks. -name: Nesting Forkless +# name: Nesting Forkless -on: - workflow_call: +# on: +# workflow_call: -jobs: +# jobs: - forkless-update-data: - name: with data - uses: ./.github/workflows/forkless-update-data.yml +# forkless-update-data: +# name: with data +# uses: ./.github/workflows/forkless-update-data.yml +# secrets: inherit # pass all secrets from initial workflow to nested - forkless-update-no-data: - name: no data - uses: ./.github/workflows/forkless-update-nodata.yml +# forkless-update-no-data: +# name: no data +# uses: ./.github/workflows/forkless-update-nodata.yml +# secrets: inherit # pass all secrets from initial workflow to nested - try-runtime: - name: try-runtime - uses: ./.github/workflows/try-runtime.yml +# try-runtime: +# name: try-runtime +# uses: ./.github/workflows/try-runtime.yml +# secrets: inherit # pass all secrets from initial workflow to nested --- a/.github/workflows/generate-execution-matrix.yml +++ b/.github/workflows/generate-execution-matrix.yml @@ -28,7 +28,7 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -36,7 +36,7 @@ uses: xom9ikk/dotenv@v2 - name: Create Execution matrix - uses: CertainLach/create-matrix-action@v3 + uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | --- a/.github/workflows/market-test.yml +++ b/.github/workflows/market-test.yml @@ -36,7 +36,7 @@ ref: ${{ github.head_ref }} #Checking out head commit - name: Checkout Market e2e tests - uses: actions/checkout@v3 + uses: actions/checkout@v3.1.0 with: repository: 'UniqueNetwork/market-e2e-tests' ssh-key: ${{ secrets.GH_PAT }} @@ -72,7 +72,7 @@ working-directory: qa-tests run: docker-compose -f ".docker/docker-compose.market.yml" -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans --force-recreate node-parachain - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v3.5.1 with: node-version: 16.17 @@ -93,7 +93,7 @@ # working-directory: tests # run: | # yarn install -# node scripts/readyness.js +# ./scripts/wait_for_first_block.sh # echo "Ready to start tests" # env: # RPC_URL: http://127.0.0.1:9933/ --- a/.github/workflows/node-only-update.yml +++ b/.github/workflows/node-only-update.yml @@ -25,7 +25,7 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -33,7 +33,7 @@ uses: xom9ikk/dotenv@v2 - name: Create Execution matrix - uses: CertainLach/create-matrix-action@v3 + uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | @@ -64,7 +64,7 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -104,7 +104,7 @@ - name: Show launch-config-forkless configuration run: cat .docker/launch-config-forkless-nodata.json - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v3.5.1 with: node-version: 16 @@ -169,7 +169,7 @@ run: | yarn install yarn add mochawesome - node scripts/readyness.js + ./scripts/wait_for_first_block.sh echo "Ready to start tests" yarn polkadot-types NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW} @@ -194,7 +194,7 @@ RPC_URL: http://127.0.0.1:9933/ # - name: Upload Sequential Test Report Before Node upgrade - # uses: phoenix-actions/test-reporting@v8 + # uses: phoenix-actions/test-reporting@v10 # id: test-sequential-report-before # if: success() || failure() # run this step even if previous step failed # with: @@ -292,7 +292,7 @@ run: | yarn install yarn add mochawesome - node scripts/readyness.js + ./scripts/wait_for_first_block.sh echo "Ready to start tests" yarn polkadot-types NOW=$(date +%s) && yarn testParallel --reporter mochawesome --reporter-options reportFilename=test-parallel-${NOW} @@ -300,7 +300,7 @@ RPC_URL: http://127.0.0.1:9933/ #- name: Test Report Parallel After Node upgrade - # uses: phoenix-actions/test-reporting@v8 + # uses: phoenix-actions/test-reporting@v10 # id: test-report-parallel-after # if: success() || failure() # run this step even if previous step failed # with: @@ -317,7 +317,7 @@ RPC_URL: http://127.0.0.1:9933/ #- name: Upload Sequential Test Report After Node upgrade - # uses: phoenix-actions/test-reporting@v8 + # uses: phoenix-actions/test-reporting@v10 # id: test-sequential-report-after # if: success() || failure() # run this step even if previous step failed # with: --- a/.github/workflows/polkadot-types.yml +++ b/.github/workflows/polkadot-types.yml @@ -66,7 +66,7 @@ - name: Build the stack run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v3.5.1 with: node-version: 16 --- a/.github/workflows/testnet-build.yml +++ b/.github/workflows/testnet-build.yml @@ -28,7 +28,7 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -36,7 +36,7 @@ uses: xom9ikk/dotenv@v2 - name: Create Execution matrix - uses: fabiocaccamo/create-matrix-action@v2 + uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | @@ -68,7 +68,7 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -95,7 +95,7 @@ run: cat launch-config.json - name: Run find-and-replace to remove slashes from branch name - uses: mad9000/actions-find-and-replace-string@2 + uses: mad9000/actions-find-and-replace-string@4 id: branchname with: source: ${{ github.head_ref }} @@ -103,7 +103,7 @@ replace: '-' - name: Log in to Docker Hub - uses: docker/login-action@v2.0.0 + uses: docker/login-action@v2.1.0 with: username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} --- a/.github/workflows/try-runtime.yml +++ b/.github/workflows/try-runtime.yml @@ -21,7 +21,7 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -29,7 +29,7 @@ uses: xom9ikk/dotenv@v2 - name: Create Execution matrix - uses: CertainLach/create-matrix-action@v3 + uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | @@ -38,14 +38,14 @@ 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: + 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. - name: ${{ matrix.network }}-try-runtime + name: ${{ matrix.network }}-try-runtime-build strategy: matrix: include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}} @@ -56,36 +56,141 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit + # Prepare SHA + - name: Prepare SHA + uses: ./.github/actions/prepare + - name: Read .env file uses: xom9ikk/dotenv@v2 - - name: Generate ENV related extend file for docker-compose + - name: Log in to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + + # Build main image for TRY-RUNTIME + - name: Generate ENV related extend Dockerfile file uses: cuchi/jinja2-action@v1.2.0 with: - template: .docker/docker-compose.tmp-try-runtime.j2 - output_file: .docker/docker-compose.try-runtime.${{ matrix.network }}.yml + template: .docker/Dockerfile-try-runtime.j2 + output_file: .docker/Dockerfile-try-runtime.${{ matrix.network }}.yml variables: | RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }} NETWORK=${{ matrix.network }} WASM_NAME=${{ matrix.wasm_name }} REPLICA_FROM=${{ matrix.replica_from_address }} + - name: Show build Dockerfile + run: cat .docker/Dockerfile-try-runtime.${{ matrix.network }}.yml + + - name: Run find-and-replace to remove slashes from branch name + uses: mad9000/actions-find-and-replace-string@4 + id: branchname + with: + source: ${{ github.head_ref }} + find: '/' + replace: '-' + + - name: Set build SHA + shell: bash + run: | + echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV + + - name: Build the stack + 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 ../ + + - name: Push docker image version + run: docker push uniquenetwork/ci-tryruntime-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA + + - name: Remove builder cache + if: always() # run this step always + run: | + docker builder prune -f + docker system prune -f + + + try-runtime-tests: + needs: [prepare-execution-marix, try-runtime-build] + # The type of runner that the job will run on + runs-on: [self-hosted-ci] + + timeout-minutes: 600 + + name: ${{ matrix.network }}-try-runtime-tests + + 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: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}} + + steps: + - name: Skip if pull request is in Draft + 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.1.0 + with: + ref: ${{ github.head_ref }} #Checking out head commit + + - name: Prepare + uses: ./.github/actions/prepare + + - name: Set build SHA + shell: bash + run: | + echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV + + - name: Run find-and-replace to remove slashes from branch name + uses: mad9000/actions-find-and-replace-string@4 + id: branchname + with: + source: ${{ github.head_ref }} + find: '/' + replace: '-' + + - name: Read .env file + uses: xom9ikk/dotenv@v2 + + - 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: | + NETWORK=${{ matrix.network }} + BUILD_TAG=${{ steps.branchname.outputs.value }}-$BUILD_SHA + - name: Show build configuration run: cat .docker/docker-compose.try-runtime.${{ matrix.network }}.yml + - uses: actions/setup-node@v3.5.1 + with: + node-version: 16 + + - name: Log in to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + - name: Build the stack - run: docker-compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up --build --force-recreate --timeout 300 --remove-orphans --exit-code-from try-runtime + run: docker-compose -f ".docker/docker-compose.try-runtime.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300 - name: Collect Docker Logs if: success() || failure() - uses: jwalton/gh-docker-logs@v2.2.0 + uses: jwalton/gh-docker-logs@v2.2.1 with: dest: './try-runtime-logs.${{ matrix.network }}' - images: 'try-runtime' - name: Show docker logs run: cat './try-runtime-logs.${{ matrix.network }}/try-runtime.log' --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -19,14 +19,13 @@ 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. - steps: - 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 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit --- a/.github/workflows/xcm.yml +++ b/.github/workflows/xcm.yml @@ -28,7 +28,7 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -36,7 +36,7 @@ uses: xom9ikk/dotenv@v2 - name: Create Execution matrix - uses: fabiocaccamo/create-matrix-action@v2 + uses: CertainLach/create-matrix-action@v4 id: create_matrix with: matrix: | @@ -69,22 +69,23 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit + # Prepare SHA + - name: Prepare SHA + uses: ./.github/actions/prepare + - name: Read .env file uses: xom9ikk/dotenv@v2 - name: Log in to Docker Hub - uses: docker/login-action@v2.0.0 + uses: docker/login-action@v2.1.0 with: username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} - - name: Install jq - run: sudo apt install jq -y - # Check POLKADOT version and build it if it doesn't exist in repository - name: Generate ENV related extend Dockerfile file for POLKADOT uses: cuchi/jinja2-action@v1.2.0 @@ -216,7 +217,6 @@ docker push uniquenetwork/builder-cumulus:${{ matrix.cumulus_version }} fi shell: bash - # Check ASTAR version and build it if it doesn't exist in repository - name: Generate ENV related extend Dockerfile file for ASTAR @@ -251,6 +251,8 @@ fi shell: bash + - name: Pull chainql docker image + run: docker pull uniquenetwork/builder-chainql:latest - name: Generate ENV related extend launch-config file uses: cuchi/jinja2-action@v1.2.0 @@ -284,24 +286,23 @@ run: cat .docker/Dockerfile-xcm.${{ matrix.network }}.yml - name: Run find-and-replace to remove slashes from branch name - uses: mad9000/actions-find-and-replace-string@2 + uses: mad9000/actions-find-and-replace-string@4 id: branchname with: source: ${{ github.head_ref }} find: '/' replace: '-' - - name: Pull chainql docker image - run: docker pull uniquenetwork/builder-chainql:latest + - name: Set build SHA + shell: bash + run: | + echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV - name: Build the stack - run: cd .docker/ && docker build --no-cache --file ./Dockerfile-xcm.${{ matrix.network }}.yml --tag uniquenetwork/xcm-${{ matrix.network }}-testnet-local:nightly-${{ steps.branchname.outputs.value }}-${{ github.sha }} --tag uniquenetwork/xcm-${{ matrix.network }}-testnet-local:latest . + run: cd .docker/ && docker build --no-cache --file ./Dockerfile-xcm.${{ matrix.network }}.yml --tag uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA . - name: Push docker image version - run: docker push uniquenetwork/xcm-${{ matrix.network }}-testnet-local:nightly-${{ steps.branchname.outputs.value }}-${{ github.sha }} - - - name: Push docker image latest - run: docker push uniquenetwork/xcm-${{ matrix.network }}-testnet-local:latest + run: docker push uniquenetwork/ci-xcm-local:${{ matrix.network }}-${{ steps.branchname.outputs.value }}-$BUILD_SHA - name: Remove builder cache if: always() # run this step always @@ -333,30 +334,53 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit + - name: Prepare + uses: ./.github/actions/prepare + + - name: Set build SHA + shell: bash + run: | + echo "BUILD_SHA=${LAST_COMMIT_SHA:0:8}" >> $GITHUB_ENV + + - name: Run find-and-replace to remove slashes from branch name + uses: mad9000/actions-find-and-replace-string@4 + id: branchname + with: + source: ${{ github.head_ref }} + find: '/' + replace: '-' + - name: Read .env file uses: xom9ikk/dotenv@v2 - name: Generate ENV related extend file for docker-compose uses: cuchi/jinja2-action@v1.2.0 with: - template: .docker/docker-compose.tmp-xcm-tests.j2 - output_file: .docker/docker-compose.xcm-tests.${{ matrix.network }}.yml + template: .docker/docker-compose.xcm.j2 + output_file: .docker/docker-compose.xcm.${{ matrix.network }}.yml variables: | NETWORK=${{ matrix.network }} + BUILD_TAG=${{ steps.branchname.outputs.value }}-$BUILD_SHA - name: Show build configuration - run: cat .docker/docker-compose.xcm-tests.${{ matrix.network }}.yml + run: cat .docker/docker-compose.xcm.${{ matrix.network }}.yml - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v3.5.1 with: node-version: 16 + - name: Log in to Docker Hub + uses: docker/login-action@v2.1.0 + with: + username: ${{ secrets.CORE_DOCKERHUB_USERNAME }} + password: ${{ secrets.CORE_DOCKERHUB_TOKEN }} + - name: Build the stack - run: docker-compose -f ".docker/docker-compose.xcm-tests.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300 + run: docker-compose -f ".docker/docker-compose.xcm.${{ matrix.network }}.yml" up -d --remove-orphans --force-recreate --timeout 300 # 🚀 POLKADOT LAUNCH COMPLETE 🚀 - name: Check if docker logs consist messages related to testing of xcm tests @@ -364,14 +388,14 @@ run: | counter=160 function check_container_status { - docker inspect -f {{.State.Running}} xcm-${{ matrix.network }}-testnet-local + docker inspect -f {{.State.Running}} xcm-${{ matrix.network }}-local } function do_docker_logs { - docker logs --details xcm-${{ matrix.network }}-testnet-local 2>&1 + docker logs --details xcm-${{ matrix.network }}-local 2>&1 } function is_started { if [ "$(check_container_status)" == "true" ]; then - echo "Container: xcm-${{ matrix.network }}-testnet-local RUNNING"; + echo "Container: xcm-${{ matrix.network }}-local RUNNING"; echo "Check Docker logs" DOCKER_LOGS=$(do_docker_logs) if [[ ${DOCKER_LOGS} = *"POLKADOT LAUNCH COMPLETE"* ]];then @@ -382,7 +406,7 @@ return 1 fi else - echo "Container xcm-${{ matrix.network }}-testnet-local NOT RUNNING" + echo "Container xcm-${{ matrix.network }}-local NOT RUNNING" echo "Halting all future checks" exit 1 fi @@ -409,7 +433,7 @@ run: | yarn install yarn add mochawesome - node scripts/readyness.js + ./scripts/wait_for_first_block.sh echo "Ready to start tests" yarn polkadot-types NOW=$(date +%s) && yarn ${{ matrix.runtest }} --reporter mochawesome --reporter-options reportFilename=test-${NOW} @@ -417,7 +441,7 @@ RPC_URL: http://127.0.0.1:9933/ - name: XCM Test Report - uses: phoenix-actions/test-reporting@v8 + uses: phoenix-actions/test-reporting@v10 id: test-report if: success() || failure() # run this step even if previous step failed with: @@ -428,11 +452,11 @@ - name: Show container logs if: always() # run this step always - run: docker-compose -f ".docker/docker-compose.xcm-tests.${{ matrix.network }}.yml" logs + run: docker-compose -f ".docker/docker-compose.xcm.${{ matrix.network }}.yml" logs - name: Stop running containers if: always() # run this step always - run: docker-compose -f ".docker/docker-compose.xcm-tests.${{ matrix.network }}.yml" down + run: docker-compose -f ".docker/docker-compose.xcm.${{ matrix.network }}.yml" down - name: Clean Workspace if: always() --- a/.github/workflows/yarn-dev.yml +++ b/.github/workflows/yarn-dev.yml @@ -34,7 +34,7 @@ uses: AutoModality/action-clean@v1.1.0 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v3 + - uses: actions/checkout@v3.1.0 with: ref: ${{ github.head_ref }} #Checking out head commit @@ -57,7 +57,7 @@ - name: Build the stack run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v3.5.1 with: node-version: 16 @@ -66,7 +66,7 @@ run: | yarn install yarn add mochawesome - node scripts/readyness.js + ./scripts/wait_for_first_block.sh echo "Ready to start tests" yarn polkadot-types NOW=$(date +%s) && yarn test --reporter mochawesome --reporter-options reportFilename=test-${NOW} @@ -74,7 +74,7 @@ RPC_URL: http://127.0.0.1:9933/ - name: Test Report - uses: phoenix-actions/test-reporting@v8 + uses: phoenix-actions/test-reporting@v10 id: test-report if: success() || failure() # run this step even if previous step failed with: @@ -97,3 +97,20 @@ docker builder prune -f -a docker system prune -f docker image prune -f -a + + # check: + # if: always() + # runs-on: [self-hosted-ci] + # needs: + # - dev_build_int_tests + + # steps: + # - name: Install python3 + # uses: actions/setup-python@v4 + # with: + # python-version: '3.10' + + # - name: Decide whether the needed jobs succeeded or failed + # uses: re-actors/alls-green@v1.2.2 + # with: + # jobs: ${{ toJSON(needs) }} \ No newline at end of file