Skip to content

Commit

Permalink
workflow: Add a deploying Allure reports to NeoFS #2324
Browse files Browse the repository at this point in the history
nspcc-dev/neofs-testcases#574

Added a workflow for deploy Allure tests result as static
web page to NeoFS.

This new functionality will help to save any test report as an
object in the NeoFS network, we will become independent of
the limitations of the GitHub branches and pages.

It will also be an "advertisement" for our object storage.

Signed-off-by: Oleg Kulachenko <[email protected]>
  • Loading branch information
vvarg229 committed Jul 28, 2023
1 parent c408b57 commit b681e64
Showing 1 changed file with 55 additions and 22 deletions.
77 changes: 55 additions & 22 deletions .github/workflows/run-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,21 @@ jobs:
run_system_tests:
runs-on: ubuntu-latest
timeout-minutes: 500
env:
TEST_RESULTS_PASSWORD: ${{ secrets.TEST_RESULTS_PASSWORD }}
TEST_RESULTS_WALLET: ${{ secrets.TEST_RESULTS_WALLET }}
TEST_RESULTS_NEOFS_NETWORK_DOMAIN: "fs.neo.org"
TEST_RESULTS_CID: "HXSaMJXk2g8C14ht8HSi7BBaiYZ1HeWh2xnWPGQCg4H6"
steps:
- name: Get the current date
id: date
run: echo "::set-output name=timestamp::$(date +%s)"

- name: Set RUN_ID
env:
TIMESTAMP: ${{ steps.date.outputs.timestamp }}
run: echo "RUN_ID=${{ github.run_number }}-$TIMESTAMP" >> $GITHUB_ENV

- name: Checkout neofs-testcases repository
uses: actions/checkout@v3
with:
Expand All @@ -47,7 +61,21 @@ jobs:
with:
path: neofs-node

################################################################
- name: Download latest stable neofs-cli for uploading reports to NeoFS
uses: dsaltares/[email protected]
with:
repo: 'nspcc-dev/neofs-node'
version: 'tags/v0.37.0'
file: 'neofs-cli-amd64'
target: 'neofs-node-stable/neofs-cli'
token: ${{ secrets.GITHUB_TOKEN }}

- 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
with:
Expand Down Expand Up @@ -217,36 +245,41 @@ jobs:
working-directory: neofs-testcases

################################################################
- name: Get Allure history
timeout-minutes: 60
uses: actions/checkout@v3
if: always()
with:
ref: gh-pages
path: gh-pages

- name: Allure Report action from marketplace
- name: Generate Allure report
timeout-minutes: 60
uses: simple-elf/[email protected]
if: always()
id: allure-report
with:
keep_reports: 200
keep_reports: 100000
allure_results: allure-results
allure_report: allure-report
gh_pages: gh-pages
allure_history: allure-history

- name: Deploy report to Github Pages
timeout-minutes: 120
- name: Remove testing neofs-cli
if: always()
uses: peaceiris/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
publish_dir: allure-history
force_orphan: true
enable_jekyll: true
run: |
make clean
working-directory: neofs-node

- name: Enable stable neofs-cli
if: always()
run: |
echo "$(pwd)" >> $GITHUB_PATH
working-directory: neofs-node-stable

- name: Create wallet
if: always()
run: |
echo "$TEST_RESULTS_WALLET" | base64 -d > wallet.json
working-directory: neofs-testcases

- name: Put allure report to NeoFS
if: always()
run: |
sudo chmod -R a+rw ${GITHUB_WORKSPACE}/allure-report
source venv.local-pytest/bin/activate && python ./tools/src/process-allure-reports.py --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
timeout-minutes: 60
Expand All @@ -257,4 +290,4 @@ jobs:
context: 'Test report'
state: 'success'
sha: ${{github.event.pull_request.head.sha || github.sha}}
target_url: https://${{ github.repository_owner }}.github.io/neofs-node/${{ github.run_number }}
target_url: https://http.${{ env.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }}/${{ env.TEST_RESULTS_CID }}/${{ env.RUN_ID }}/index.html

0 comments on commit b681e64

Please sign in to comment.