Skip to content

Commit

Permalink
Added gh-push-allure-report-to-neofsfs for testcases
Browse files Browse the repository at this point in the history
Signed-off-by: Maksim Gelbakhiani <[email protected]>
  • Loading branch information
Maksim Gelbakhiani committed Jan 23, 2024
1 parent e5cd39d commit 719c8da
Showing 1 changed file with 69 additions and 84 deletions.
153 changes: 69 additions & 84 deletions .github/workflows/system-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ on:

permissions: write-all

env:
ALLURE_RESULTS_DIR: ${{ github.workspace }}/allure-results
DOCKER_LOGS: ${{ github.workspace }}/docker-logs
jobs:
run_system_tests:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -56,19 +59,6 @@ jobs:
ref: 'af001f8052a203eab408af2bf3a41c7e5af2ac11'
path: neofs-dev-env

- name: Download latest stable neofs-cli for uploading reports to NeoFS
uses: dsaltares/[email protected]
with:
repo: 'nspcc-dev/neofs-node'
version: 'tags/v0.38.1'
file: 'neofs-cli-amd64'
target: 'neofs-node-stable/neofs-cli'

- name: Chmod latest stable neofs-cli
run: |
sudo chmod a+x neofs-cli
working-directory: neofs-node-stable

#################################################################
- name: Set up Go
uses: actions/setup-go@v4
Expand Down Expand Up @@ -210,106 +200,101 @@ jobs:

################################################################
- name: Run Sanity tests for pull requests
env:
ALLURE_RESULTS_DIR: ${{ github.workspace }}/allure-results
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="$ALLURE_RESULTS_DIR" pytest_tests/testsuites/services/s3_gate/test_s3_bucket.py
working-directory: neofs-testcases

- name: Run all tests for other events
env:
ALLURE_RESULTS_DIR: ${{ github.workspace }}/allure-results
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="$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/[email protected]
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: 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
- 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
# uses: nspcc-dev/gh-push-allure-report-to-neofs@master
uses: vvarg229/gh-push-allure-report-to-neofs@fix-debug
with:
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 }}
ALLURE_GENERATED_DIR: 'neofs-test-allure-generated-report'

- 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 }}
REPORT_NEOFS_URL: ${{ steps.put_report.outputs.REPORT_NEOFS_URL }}index.html
uses: Sibz/github-status-action@v1
with:
authToken: ${{secrets.GITHUB_TOKEN}}
context: 'Test report'
context: 'System tests 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
target_url: ${{ env.REPORT_NEOFS_URL }}


# - 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: Gather docker logs
id: gather_dockers_logs
if: always()
# && ( steps.prepare_test_env.outcome != 'success' || steps.put_report.outcome != 'success' )
env:
DOCKER_LOGS: ${{ github.workspace }}/docker-logs
run: |
source venv.local-pytest/bin/activate
mkdir -p $DOCKER_LOGS && cd $DOCKER_LOGS
python ${{ github.workspace }}/neofs-testcases/tools/src/zip_dev_env_logs.py
working-directory: neofs-testcases


- name: Post only docker logs
uses: nspcc-dev/gh-push-to-neofs@master
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
env:
DOCKER_LOGS: ${{ github.workspace }}/docker-logs
if: always()
# && ( steps.gather_dockers_logs.outcome != 'success' || steps.put_report.outcome != 'success' )
with:
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 }}
LIFETIME: ${{ vars.OTHER_EXPIRATION_PERIOD }}
PATH_TO_FILES_DIR: ${{ env.DOCKER_LOGS }}

- name: Post the link to the docker logs
timeout-minutes: 60
Expand Down

0 comments on commit 719c8da

Please sign in to comment.