--- /dev/null +++ b/.docker/Dockerfile-try-runtime.j2 @@ -0,0 +1,40 @@ +# ===== Rust builder ===== +FROM ubuntu:20.04 as rust-builder +LABEL maintainer="Unique.Network" + +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 protobuf-compiler && \ + 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 + +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-try-runtime.j2 +++ b/.docker/docker-compose.tmp-try-runtime.j2 @@ -2,16 +2,8 @@ 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 + image: uniquenetwork/tryruntime-{{ NETWORK }}-testnet-local:latest + container_name: tryruntime-{{ NETWORK }}-testnet-local expose: - 9944 - 9933 --- a/.docker/docker-compose.tmp-xcm-tests.j2 +++ b/.docker/docker-compose.tmp-xcm-tests.j2 @@ -2,8 +2,8 @@ services: xcm_nodes: - image: uniquenetwork/xcm-{{ NETWORK }}-testnet-local:latest - container_name: xcm-{{ NETWORK }}-testnet-local + image: uniquenetwork/ci-xcm-local:{{ NETWORK }}-{{ BUILD_TAG }} + container_name: xcm-{{ NETWORK }}-local expose: - 9844 - 9933 --- /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 @@ -25,12 +25,12 @@ uses: ./.github/workflows/unit-test.yml 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 @@ -39,11 +39,11 @@ uses: ./.github/workflows/collator-selection.yml forkless: - if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'forkless')) }} # Conditional check for draft & labels per job. + 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 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: --- 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 @@ -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: | @@ -51,14 +51,14 @@ matrix: include: ${{fromJson(needs.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 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 @@ -152,7 +152,7 @@ - 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' --- a/.github/workflows/forkless-update-nodata.yml +++ b/.github/workflows/forkless-update-nodata.yml @@ -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: | @@ -49,7 +49,7 @@ name: ${{ matrix.network }}-nodata - 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: @@ -60,7 +60,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 @@ -100,7 +100,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 @@ -156,7 +156,7 @@ - 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' @@ -170,7 +170,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} @@ -178,7 +178,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 +193,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 +201,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: --- 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 @@ -18,7 +18,7 @@ name: ${{ matrix.network }} - 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: @@ -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: | @@ -52,7 +52,7 @@ name: ${{ matrix.network }} - 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: @@ -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 @@ -24,7 +24,7 @@ name: ${{ matrix.network }} - 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: @@ -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: | @@ -53,7 +53,7 @@ name: ${{ matrix.network }} - 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: @@ -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 --- 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: | @@ -43,7 +43,7 @@ # 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 strategy: @@ -56,7 +56,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 @@ -82,7 +82,7 @@ - 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' --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -17,8 +17,7 @@ name: ${{ github.base_ref }} - 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: @@ -26,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 --- 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: | @@ -54,7 +54,7 @@ name: ${{ matrix.network }}-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: @@ -69,10 +69,14 @@ 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 @@ -81,9 +85,6 @@ 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 @@ -217,7 +218,6 @@ 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 uses: cuchi/jinja2-action@v1.2.0 @@ -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@3 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 @@ -318,7 +319,7 @@ name: ${{ matrix.network }}-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. + 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: @@ -333,10 +334,26 @@ 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@2 + id: branchname + with: + source: ${{ github.head_ref }} + find: '/' + replace: '-' + - name: Read .env file uses: xom9ikk/dotenv@v2 @@ -347,14 +364,21 @@ output_file: .docker/docker-compose.xcm-tests.${{ 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 - - 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.0.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 @@ -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: --- a/.github/workflows/yarn-dev.yml +++ b/.github/workflows/yarn-dev.yml @@ -18,7 +18,7 @@ name: ${{ matrix.network }} - 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: @@ -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