difftreelog
Merge pull request #981 from UniqueNetwork/ci/governance-workflow
in: master
enable governance workflow for develop and master branch
4 files changed
.github/workflows/ci-develop.ymldiffbeforeafterboth--- a/.github/workflows/ci-develop.yml
+++ b/.github/workflows/ci-develop.yml
@@ -5,7 +5,7 @@
# Triger: PR at 'develop' branch with following types of events.
on:
pull_request:
- branches: [ 'develop', 'ci/baedeker' ]
+ branches: [ 'develop' ]
types: [ opened, reopened, synchronize, ready_for_review, converted_to_draft ]
#Concurency group for control execution queue over github runners.
@@ -61,9 +61,9 @@
uses: ./.github/workflows/node-only-update.yml
secrets: inherit
- gov:
+ governance:
if: ${{ (github.event.pull_request.draft == false && contains( github.event.pull_request.labels.*.name, 'CI-gov')) }} # Conditional check for draft & labels per job.
- uses: ./.github/workflows/gov.yml
+ uses: ./.github/workflows/governance.yml
secrets: inherit # pass all secrets from initial workflow to nested
codestyle:
.github/workflows/ci-master.ymldiffbeforeafterboth--- a/.github/workflows/ci-master.yml
+++ b/.github/workflows/ci-master.yml
@@ -52,6 +52,10 @@
uses: ./.github/workflows/node-only-update.yml
secrets: inherit
+ governance:
+ uses: ./.github/workflows/governance.yml
+ secrets: inherit
+
codestyle:
uses: ./.github/workflows/codestyle.yml
secrets: inherit
.github/workflows/gov.ymldiffbeforeafterboth1# Governance tests in --dev mode with gov-test-timings feature enabled to reduce gov timings2name: governance tests34# Triger: only call from main workflow(re-usable workflows)5on:6 workflow_call:78# A workflow run is made up of one or more jobs that can run sequentially or in parallel9jobs:10 prepare-execution-marix:11 name: Prepare execution matrix1213 runs-on: self-hosted-ci14 outputs:15 matrix: ${{ steps.create_matrix.outputs.matrix }}1617 steps:18 - name: Clean Workspace19 uses: AutoModality/action-clean@v1.1.02021 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it22 - uses: actions/checkout@v3.1.023 with:24 ref: ${{ github.head_ref }} #Checking out head commit2526 - name: Read .env file27 uses: xom9ikk/dotenv@v22829 - name: Create Execution matrix30 uses: CertainLach/create-matrix-action@v431 id: create_matrix32 with:33 matrix: |34 network {quartz}, wasm_name {quartz}35 network {opal}, wasm_name {opal}36 network {sapphire}, wasm_name {quartz}3738 dev_build_int_tests:39 needs: prepare-execution-marix40 # The type of runner that the job will run on41 runs-on: [self-hosted-ci, medium]42 timeout-minutes: 13804344 name: ${{ matrix.network }}45 strategy:46 matrix:47 include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}4849 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.5051 steps:52 - name: Clean Workspace53 uses: AutoModality/action-clean@v1.1.05455 # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it56 - uses: actions/checkout@v3.1.057 with:58 ref: ${{ github.head_ref }} #Checking out head commit5960 - name: Read .env file61 uses: xom9ikk/dotenv@v26263 - name: Generate ENV related extend file for docker-compose64 uses: cuchi/jinja2-action@v1.2.065 with:66 template: .docker/docker-compose.gov.j267 output_file: .docker/docker-compose.${{ matrix.network }}.yml68 variables: |69 RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}70 NETWORK=${{ matrix.network }}71 WASM_NAME=${{ matrix.wasm_name }}7273 - name: Show build configuration74 run: cat .docker/docker-compose.${{ matrix.network }}.yml7576 - name: Build the stack77 run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans7879 - uses: actions/setup-node@v3.5.180 with:81 node-version: 168283 - name: Run tests84 working-directory: tests85 run: |86 yarn install87 yarn add mochawesome88 ./scripts/wait_for_first_block.sh89 echo "Ready to start tests"90 NOW=$(date +%s) && yarn testGovernance --reporter mochawesome --reporter-options reportFilename=test-${NOW}91 env:92 RPC_URL: http://127.0.0.1:9944/9394 - name: Test Report95 uses: phoenix-actions/test-reporting@v1096 id: test-report97 if: success() || failure() # run this step even if previous step failed98 with:99 name: int test results - ${{ matrix.network }} # Name of the check run which will be created100 path: tests/mochawesome-report/test-*.json # Path to test results101 reporter: mochawesome-json102 fail-on-error: 'false'103104 - name: Read output variables105 run: |106 echo "url is ${{ steps.test-report.outputs.runHtmlUrl }}"107108 - name: Stop running containers109 if: always() # run this step always110 run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" down111112 - name: Remove builder cache113 if: always() # run this step always114 run: |115 docker builder prune -f -a116 docker system prune -f117 docker image prune -f -a.github/workflows/governance.ymldiffbeforeafterboth--- /dev/null
+++ b/.github/workflows/governance.yml
@@ -0,0 +1,117 @@
+# Governance tests in --dev mode with gov-test-timings feature enabled to reduce gov timings
+name: governance tests
+
+# Triger: only call from main workflow(re-usable workflows)
+on:
+ workflow_call:
+
+# A workflow run is made up of one or more jobs that can run sequentially or in parallel
+jobs:
+ prepare-execution-marix:
+ name: Prepare execution matrix
+
+ runs-on: self-hosted-ci
+ outputs:
+ matrix: ${{ steps.create_matrix.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.1.0
+ with:
+ ref: ${{ github.head_ref }} #Checking out head commit
+
+ - name: Read .env file
+ uses: xom9ikk/dotenv@v2
+
+ - name: Create Execution matrix
+ uses: CertainLach/create-matrix-action@v4
+ id: create_matrix
+ with:
+ matrix: |
+ network {quartz}, wasm_name {quartz}
+ network {opal}, wasm_name {opal}
+ network {sapphire}, wasm_name {quartz}
+
+ dev_build_int_tests:
+ needs: prepare-execution-marix
+ # The type of runner that the job will run on
+ runs-on: [self-hosted-ci, medium]
+ timeout-minutes: 1380
+
+ name: ${{ matrix.network }}
+ strategy:
+ matrix:
+ include: ${{fromJson(needs.prepare-execution-marix.outputs.matrix)}}
+
+ continue-on-error: true #Do not stop testing of matrix runs failed. As it decided during PR review - it required 50/50& Let's check it with false.
+
+ 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.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
+ uses: cuchi/jinja2-action@v1.2.0
+ with:
+ template: .docker/docker-compose.gov.j2
+ output_file: .docker/docker-compose.${{ matrix.network }}.yml
+ variables: |
+ RUST_TOOLCHAIN=${{ env.RUST_TOOLCHAIN }}
+ NETWORK=${{ matrix.network }}
+ WASM_NAME=${{ matrix.wasm_name }}
+
+ - name: Show build configuration
+ run: cat .docker/docker-compose.${{ matrix.network }}.yml
+
+ - name: Build the stack
+ run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" up -d --build --remove-orphans
+
+ - uses: actions/setup-node@v3.5.1
+ with:
+ node-version: 16
+
+ - name: Run tests
+ working-directory: tests
+ run: |
+ yarn install
+ yarn add mochawesome
+ ./scripts/wait_for_first_block.sh
+ echo "Ready to start tests"
+ NOW=$(date +%s) && yarn testGovernance --reporter mochawesome --reporter-options reportFilename=test-${NOW}
+ env:
+ RPC_URL: http://127.0.0.1:9944/
+
+ - name: Test Report
+ uses: phoenix-actions/test-reporting@v10
+ id: test-report
+ if: success() || failure() # run this step even if previous step failed
+ with:
+ name: int test results - ${{ matrix.network }} # Name of the check run which will be created
+ path: tests/mochawesome-report/test-*.json # Path to test results
+ reporter: mochawesome-json
+ fail-on-error: 'false'
+
+ - name: Read output variables
+ run: |
+ echo "url is ${{ steps.test-report.outputs.runHtmlUrl }}"
+
+ - name: Stop running containers
+ if: always() # run this step always
+ run: docker-compose -f ".docker/docker-compose.${{ matrix.network }}.yml" down
+
+ - name: Remove builder cache
+ if: always() # run this step always
+ run: |
+ docker builder prune -f -a
+ docker system prune -f
+ docker image prune -f -a