From 3ea1dd5bf85aa19d775f3d2a2b8b9627c826588c Mon Sep 17 00:00:00 2001 From: Maksim Gelbakhiani Date: Thu, 11 Jan 2024 14:31:39 +0100 Subject: [PATCH] Added gh-push-allure-report-to-neofsfs for testcases Signed-off-by: Maksim Gelbakhiani --- .github/workflows/system-tests.yml | 155 +++++++++++------------------ 1 file changed, 58 insertions(+), 97 deletions(-) diff --git a/.github/workflows/system-tests.yml b/.github/workflows/system-tests.yml index e334e81e..5b836413 100644 --- a/.github/workflows/system-tests.yml +++ b/.github/workflows/system-tests.yml @@ -23,6 +23,8 @@ on: permissions: write-all +env: + ALLURE_RESULTS_DIR: allure-results jobs: run_system_tests: runs-on: ubuntu-latest @@ -213,114 +215,73 @@ jobs: timeout-minutes: 120 if: github.event_name == 'pull_request' run: | - source venv.local-pytest/bin/activate && pytest --show-capture=no -m "sanity" --alluredir=${GITHUB_WORKSPACE}/allure-results pytest_tests/testsuites/services/s3_gate + source venv.local-pytest/bin/activate && pytest --show-capture=no -m "sanity" --alluredir=${{ env.ALLURE_RESULTS_DIR }} pytest_tests/testsuites/services/s3_gate/test_s3_bucket.py working-directory: neofs-testcases - name: Run all tests for other events timeout-minutes: 480 if: github.event_name != 'pull_request' run: | - source venv.local-pytest/bin/activate && pytest --show-capture=no --alluredir=${GITHUB_WORKSPACE}/allure-results pytest_tests/testsuites/services/s3_gate + source venv.local-pytest/bin/activate && pytest --show-capture=no --alluredir=${{ env.ALLURE_RESULTS_DIR }} pytest_tests/testsuites/services/s3_gate/test_s3_tagging.py working-directory: neofs-testcases ################################################################ - - name: Generate Allure report - timeout-minutes: 60 - uses: simple-elf/allure-report-action@v1.6 - if: always() - id: allure-report - with: - keep_reports: 100000 - allure_results: allure-results - allure_report: allure-report - allure_history: allure-history - - - name: Create wallet - if: always() - env: - TEST_RESULTS_WALLET: ${{ secrets.TEST_RESULTS_WALLET }} - run: | - echo "$TEST_RESULTS_WALLET" | base64 -d > wallet.json - working-directory: neofs-testcases + # - name: tmate1 + # if: always() + # uses: mxschmitt/action-tmate@v3 - - name: Define expiration - if: always() - env: - TEST_RESULTS_NEOFS_NETWORK_DOMAIN: ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }} - MASTER_EXPIRATION_PERIOD: ${{ vars.MASTER_EXPIRATION_PERIOD }} - PR_EXPIRATION_PERIOD: ${{ vars.PR_EXPIRATION_PERIOD }} - MANUAL_RUN_EXPIRATION_PERIOD: ${{ vars.MANUAL_RUN_EXPIRATION_PERIOD }} - OTHER_EXPIRATION_PERIOD: ${{ vars.OTHER_EXPIRATION_PERIOD }} - run: | - CURRENT_EPOCH=$(neofs-cli netmap epoch --rpc-endpoint st1.$TEST_RESULTS_NEOFS_NETWORK_DOMAIN:8080) - if [[ "${{ github.event_name }}" == "push" ]]; then - EXP_EPOCH=$((MASTER_EXPIRATION_PERIOD + CURRENT_EPOCH)) - elif [[ "${{ github.event_name }}" == "pull_request" ]]; then - EXP_EPOCH=$((PR_EXPIRATION_PERIOD + CURRENT_EPOCH)) - elif [[ "${{ github.event_name }}" == "release" ]]; then - EXP_EPOCH=0 # For test reports from releases - no expiration period - elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then - EXP_EPOCH=$((MANUAL_RUN_EXPIRATION_PERIOD + CURRENT_EPOCH)) - else - EXP_EPOCH=$((OTHER_EXPIRATION_PERIOD + CURRENT_EPOCH)) - fi - echo "EXP_EPOCH=$EXP_EPOCH" >> $GITHUB_ENV - working-directory: neofs-testcases - - - name: Put allure report to NeoFS + - uses: actions/checkout@v4 + - name: Publish to NeoFS id: put_report if: always() && steps.prepare_test_env.outcome == 'success' - env: - TEST_RESULTS_PASSWORD: ${{ secrets.TEST_RESULTS_PASSWORD }} - TEST_RESULTS_NEOFS_NETWORK_DOMAIN: ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }} - TEST_RESULTS_CID: ${{ vars.TEST_RESULTS_CID }} - run: | - sudo chmod -R a+rw ${GITHUB_WORKSPACE}/allure-report - source venv.local-pytest/bin/activate && python ./tools/src/process-allure-reports.py \ - --expire-at $EXP_EPOCH --neofs_domain $TEST_RESULTS_NEOFS_NETWORK_DOMAIN --run_id $RUN_ID \ - --cid $TEST_RESULTS_CID --allure_report ${GITHUB_WORKSPACE}/allure-report --wallet wallet.json - working-directory: neofs-testcases - - - name: Post the link to the report - id: post_report_link - timeout-minutes: 60 - if: always() && steps.put_report.outcome == 'success' - env: - TEST_RESULTS_HTTP_GATE: ${{ vars.TEST_RESULTS_HTTP_GATE }} - TEST_RESULTS_CID: ${{ vars.TEST_RESULTS_CID }} - uses: Sibz/github-status-action@v1 + uses: nspcc-dev/gh-push-allure-report-to-neofs@master with: - authToken: ${{secrets.GITHUB_TOKEN}} - context: 'Test report' - state: 'success' - sha: ${{github.event.pull_request.head.sha || github.sha}} - target_url: https://${{ env.TEST_RESULTS_HTTP_GATE }}/${{ env.TEST_RESULTS_CID }}/${{ env.RUN_ID }}/index.html - - - name: Post only docker logs - id: post_dockers_logs - if: always() && ( steps.prepare_test_env.outcome != 'success' || steps.put_report.outcome != 'success' ) - env: - TEST_RESULTS_PASSWORD: ${{ secrets.TEST_RESULTS_PASSWORD }} - TEST_RESULTS_NEOFS_NETWORK_DOMAIN: ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }} - TEST_RESULTS_CID: ${{ vars.TEST_RESULTS_CID }} + NEOFS_WALLET: ${{ secrets.TEST_RESULTS_WALLET }} + NEOFS_WALLET_PASSWORD: ${{ secrets.TEST_RESULTS_PASSWORD }} + NEOFS_NETWORK_DOMAIN: ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }} + NEOFS_HTTP_GATE: ${{ vars.TEST_RESULTS_HTTP_GATE }} + STORE_OBJECTS_CID: ${{ vars.TEST_RESULTS_CID }} + PR_LIFETIME: ${{ vars.PR_EXPIRATION_PERIOD }} + MASTER_LIFETIME: ${{ vars.MASTER_EXPIRATION_PERIOD }} + MANUAL_RUN_LIFETIME: ${{ vars.MANUAL_RUN_EXPIRATION_PERIOD }} + OTHER_LIFETIME: ${{ vars.OTHER_EXPIRATION_PERIOD }} + ALLURE_RESULTS_DIR: ${{ env.ALLURE_RESULTS_DIR }} + + - name: Debug Allure Generation + if: always() run: | - source venv.local-pytest/bin/activate && python ./tools/src/zip_dev_env_logs.py - NEOFS_CLI_PASSWORD=$TEST_RESULTS_PASSWORD neofs-cli --rpc-endpoint st1.$TEST_RESULTS_NEOFS_NETWORK_DOMAIN:8080 \ - --wallet wallet.json object put --file containers_logs.zip --cid $TEST_RESULTS_CID --timeout 1200s \ - --expire-at $EXP_EPOCH \ - --attributes FilePath=$RUN_ID/data/containers_logs.zip,RunNumber=$RUN_ID,ContentType=application/zip - working-directory: neofs-testcases - - - name: Post the link to the docker logs - timeout-minutes: 60 - if: always() && ( steps.post_dockers_logs.outcome == 'success' ) - env: - TEST_RESULTS_HTTP_GATE: ${{ vars.TEST_RESULTS_HTTP_GATE }} - TEST_RESULTS_CID: ${{ vars.TEST_RESULTS_CID }} - uses: Sibz/github-status-action@v1 - with: - authToken: ${{secrets.GITHUB_TOKEN}} - context: 'Docker logs' - state: 'success' - sha: ${{github.event.pull_request.head.sha || github.sha}} - target_url: https://${{ env.TEST_RESULTS_HTTP_GATE }}/${{ env.TEST_RESULTS_CID }}/${{ env.RUN_ID }}/data/containers_logs.zip + ls -lah "./tests/neofs-test-allure-generated-report" + + - name: tmate2 + if: always() + uses: mxschmitt/action-tmate@v3 + + + # - name: Post only docker logs + # id: post_dockers_logs + # if: always() && ( steps.prepare_test_env.outcome != 'success' || steps.put_report.outcome != 'success' ) + # env: + # TEST_RESULTS_PASSWORD: ${{ secrets.TEST_RESULTS_PASSWORD }} + # TEST_RESULTS_NEOFS_NETWORK_DOMAIN: ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }} + # TEST_RESULTS_CID: ${{ vars.TEST_RESULTS_CID }} + # run: | + # source venv.local-pytest/bin/activate && python ./tools/src/zip_dev_env_logs.py + # NEOFS_CLI_PASSWORD=$TEST_RESULTS_PASSWORD neofs-cli --rpc-endpoint st1.$TEST_RESULTS_NEOFS_NETWORK_DOMAIN:8080 \ + # --wallet wallet.json object put --file containers_logs.zip --cid $TEST_RESULTS_CID --timeout 1200s \ + # --expire-at $EXP_EPOCH \ + # --attributes FilePath=$RUN_ID/data/containers_logs.zip,RunNumber=$RUN_ID,ContentType=application/zip + # working-directory: neofs-testcases + + # - name: Post the link to the docker logs + # timeout-minutes: 60 + # if: always() && ( steps.post_dockers_logs.outcome == 'success' ) + # env: + # TEST_RESULTS_HTTP_GATE: ${{ vars.TEST_RESULTS_HTTP_GATE }} + # TEST_RESULTS_CID: ${{ vars.TEST_RESULTS_CID }} + # uses: Sibz/github-status-action@v1 + # with: + # authToken: ${{secrets.GITHUB_TOKEN}} + # context: 'Docker logs' + # state: 'success' + # sha: ${{github.event.pull_request.head.sha || github.sha}} + # target_url: https://${{ env.TEST_RESULTS_HTTP_GATE }}/${{ env.TEST_RESULTS_CID }}/${{ env.RUN_ID }}/data/containers_logs.zip