diff --git a/.github/workflows/nim_waku_daily.yml b/.github/workflows/nim_waku_daily.yml index 539201e1..9899248e 100644 --- a/.github/workflows/nim_waku_daily.yml +++ b/.github/workflows/nim_waku_daily.yml @@ -8,13 +8,14 @@ on: schedule: - cron: '0 4 * * *' workflow_dispatch: - -env: - QUAY_PASSWORD: ${{ secrets.QUAY_PASSWORD }} - QUAY_USER: ${{ secrets.QUAY_USER }} + workflow_call: jobs: test-common: - uses: waku-org/nwaku/.github/workflows/container-image.yml@master + uses: ./.github/workflows/test_common.yml secrets: inherit - + with: + node1: "wakuorg/nwaku:latest" + node2: "wakuorg/nwaku:latest" + additional_nodes: "wakuorg/nwaku:latest,wakuorg/nwaku:latest,wakuorg/nwaku:latest" + caller: "nim" \ No newline at end of file diff --git a/.github/workflows/test_common.yml b/.github/workflows/test_common.yml index 978b9630..f0c7ca64 100644 --- a/.github/workflows/test_common.yml +++ b/.github/workflows/test_common.yml @@ -1,3 +1,4 @@ + name: Interop Tests Common on: @@ -39,37 +40,77 @@ jobs: timeout-minutes: 120 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 + with: + repository: waku-org/waku-interop-tests - - uses: actions/setup-python@v4 - with: - python-version: '3.12' - cache: 'pip' - - - run: pip install -r requirements.txt + - uses: actions/setup-python@v4 + with: - - name: Run tests - run: | - pytest -m 'smoke' -n 4 --dist loadgroup --reruns 2 --alluredir=allure-result + python-version: '3.12' + cache: 'pip' - - name: Create job summary - if: always() - env: - JOB_STATUS: ${{ job.status }} - run: | - echo "## Run Information" >> $GITHUB_STEP_SUMMARY - echo "- **Event**: ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY - echo "- **Actor**: ${{ github.actor }}" >> $GITHUB_STEP_SUMMARY - echo "- **Node1**: ${{ env.NODE_1 }}" >> $GITHUB_STEP_SUMMARY - echo "- **Node2**: ${{ env.NODE_2 }}" >> $GITHUB_STEP_SUMMARY - echo "- **Additonal Nodes**: ${{ env.ADDITIONAL_NODES }}" >> $GITHUB_STEP_SUMMARY - echo "## Test Results" >> $GITHUB_STEP_SUMMARY - echo "Allure report will be available at: https://waku-org.github.io/waku-interop-tests/${{ env.CALLER }}/${{ github.run_number }}" >> $GITHUB_STEP_SUMMARY - if [ "$JOB_STATUS" != "success" ]; then - echo "There are failures with nwaku node. cc <@&1111608257824440330>" >> $GITHUB_STEP_SUMMARY - fi - { - echo 'JOB_SUMMARY<> $GITHUB_ENV + - run: pip install -r requirements.txt + + - name: Run tests + run: | + pytest -m 'smoke' -n 4 --dist loadgroup --reruns 2 --alluredir=allure-result + + - name: Get allure history + if: always() + uses: actions/checkout@v4 + with: + ref: gh-pages + path: gh-pages + + - name: Setup allure report + uses: simple-elf/allure-report-action@master + if: always() + id: allure-report + with: + allure_results: allure-results + gh_pages: gh-pages/${{ env.CALLER }} + allure_history: allure-history + keep_reports: 30 + report_url: https://waku-org.github.io/waku-interop-tests/${{ env.CALLER }} + + - name: Deploy report to Github Pages + uses: peaceiris/actions-gh-pages@v3 + if: always() + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_branch: gh-pages + publish_dir: allure-history + destination_dir: ${{ env.CALLER }} + + - name: Create job summary + if: always() + env: + JOB_STATUS: ${{ job.status }} + run: | + echo "## Run Information" >> $GITHUB_STEP_SUMMARY + echo "- **Event**: ${{ github.event_name }}" >> $GITHUB_STEP_SUMMARY + echo "- **Actor**: ${{ github.actor }}" >> $GITHUB_STEP_SUMMARY + echo "- **Node1**: ${{ env.NODE_1 }}" >> $GITHUB_STEP_SUMMARY + echo "- **Node2**: ${{ env.NODE_2 }}" >> $GITHUB_STEP_SUMMARY + echo "- **Additonal Nodes**: ${{ env.ADDITIONAL_NODES }}" >> $GITHUB_STEP_SUMMARY + echo "## Test Results" >> $GITHUB_STEP_SUMMARY + echo "Allure report will be available at: https://waku-org.github.io/waku-interop-tests/${{ env.CALLER }}/${{ github.run_number }}" >> $GITHUB_STEP_SUMMARY + if [ "$JOB_STATUS" != "success" ]; then + echo "There are failures with nwaku node. cc <@&1111608257824440330>" >> $GITHUB_STEP_SUMMARY + fi + { + echo 'JOB_SUMMARY<> $GITHUB_ENV + + - name: Send report to Discord + uses: rjstone/discord-webhook-notify@v1 + if: always() && env.CALLER != 'manual' + with: + severity: ${{ job.status == 'success' && 'info' || 'error' }} + username: ${{ github.workflow }} + description: "## Job Result: ${{ job.status }}" + details: ${{ env.JOB_SUMMARY }} + webhookUrl: ${{ secrets.DISCORD_TEST_REPORTS_WH }}