@@ -25,6 +25,7 @@ permissions: write-all
25
25
26
26
env :
27
27
S3_TESTS_CONFIG : s3tests.conf
28
+ ALLURE_RESULTS_DIR : ${{ github.workspace }}/allure-results
28
29
29
30
jobs :
30
31
build-and-test :
67
68
ref : master
68
69
path : neofs-s3-dev-env
69
70
70
- - name : Download latest stable neofs-cli for uploading reports to NeoFS
71
- uses : dsaltares/fetch-gh-release-asset@1.1.1
72
- with :
73
- repo : ' nspcc-dev/neofs-node'
74
- version : ' tags/v0.37.0'
75
- file : ' neofs-cli-amd64'
76
- target : ' neofs-node-stable/neofs-cli'
77
-
78
71
- name : Checkout neofs-testcases repository
79
72
uses : actions/checkout@v3
80
73
with :
@@ -238,149 +231,76 @@ jobs:
238
231
- name : s3 tests
239
232
run : |
240
233
source virtualenv/bin/activate
241
- S3TEST_CONF=${S3_TESTS_CONFIG} pytest -m 'not fails_on_aws and not fails_on_dbstore' --alluredir=${GITHUB_WORKSPACE}/allure-results -v -s s3tests_boto3/functional/test_s3.py s3tests_boto3/functional/test_s3_neofs .py 2>&1 | tee s3-tests.log
234
+ S3TEST_CONF=${S3_TESTS_CONFIG} pytest -m 'not fails_on_aws and not fails_on_dbstore' --alluredir=${{ env.ALLURE_RESULTS_DIR }} -v -s s3tests_boto3/functional/test_s3.py s3tests_boto3/functional/test_s3 .py
242
235
working-directory : s3-tests
243
236
244
-
245
- # ###############################################################
246
- - name : Generate Allure report
247
- timeout-minutes : 60
248
- uses : simple-elf/allure-report-action@v1.6
249
- if : always()
250
- id : allure-report
251
- with :
252
- keep_reports : 100000
253
- allure_results : allure-results
254
- allure_report : allure-report
255
- allure_history : allure-history
256
-
257
- - name : Enable stable neofs-cli
258
- if : always()
259
- run : |
260
- echo "$(pwd)" >> $GITHUB_PATH
261
- working-directory : neofs-node-stable
262
-
263
- - name : Create wallet
264
- if : always()
265
- env :
266
- TEST_RESULTS_WALLET : ${{ secrets.TEST_RESULTS_WALLET }}
267
- run : |
268
- echo "$TEST_RESULTS_WALLET" | base64 -d > wallet.json
269
- working-directory : neofs-testcases
270
-
271
- - name : Define expiration
272
- if : always()
273
- env :
274
- TEST_RESULTS_NEOFS_NETWORK_DOMAIN : ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }}
275
- MASTER_EXPIRATION_PERIOD : ${{ vars.MASTER_EXPIRATION_PERIOD }}
276
- PR_EXPIRATION_PERIOD : ${{ vars.PR_EXPIRATION_PERIOD }}
277
- MANUAL_RUN_EXPIRATION_PERIOD : ${{ vars.MANUAL_RUN_EXPIRATION_PERIOD }}
278
- OTHER_EXPIRATION_PERIOD : ${{ vars.OTHER_EXPIRATION_PERIOD }}
279
- run : |
280
- CURRENT_EPOCH=$(neofs-cli netmap epoch --rpc-endpoint st1.$TEST_RESULTS_NEOFS_NETWORK_DOMAIN:8080)
281
- if [[ "${{ github.event_name }}" == "push" ]]; then
282
- EXP_EPOCH=$((MASTER_EXPIRATION_PERIOD + CURRENT_EPOCH))
283
- elif [[ "${{ github.event_name }}" == "pull_request" ]]; then
284
- EXP_EPOCH=$((PR_EXPIRATION_PERIOD + CURRENT_EPOCH))
285
- elif [[ "${{ github.event_name }}" == "release" ]]; then
286
- EXP_EPOCH=0 # For test reports from releases - no expiration period
287
- elif [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
288
- EXP_EPOCH=$((MANUAL_RUN_EXPIRATION_PERIOD + CURRENT_EPOCH))
289
- else
290
- EXP_EPOCH=$((OTHER_EXPIRATION_PERIOD + CURRENT_EPOCH))
291
- fi
292
- echo "EXP_EPOCH=$EXP_EPOCH" >> $GITHUB_ENV
293
- working-directory : neofs-testcases
294
-
295
- - name : Put allure report to NeoFS
237
+ # ###############################################################
238
+
239
+ - name : Publish to NeoFS
296
240
id : put_report
297
241
if : always() && steps.prepare_test_env.outcome == 'success'
298
- env :
299
- TEST_RESULTS_PASSWORD : ${{ secrets.TEST_RESULTS_PASSWORD }}
300
- TEST_RESULTS_NEOFS_NETWORK_DOMAIN : ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }}
301
- TEST_RESULTS_CID : ${{ vars.TEST_RESULTS_CID }}
302
- run : |
303
- sudo chmod -R a+rw ${GITHUB_WORKSPACE}/allure-report
304
- source ${GITHUB_WORKSPACE}/s3-tests/virtualenv/bin/activate
305
- python ./tools/src/process-allure-reports.py \
306
- --expire-at $EXP_EPOCH \
307
- --neofs_domain $TEST_RESULTS_NEOFS_NETWORK_DOMAIN \
308
- --run_id $RUN_ID --cid $TEST_RESULTS_CID \
309
- --allure_report ${GITHUB_WORKSPACE}/allure-report \
310
- --wallet wallet.json
311
- working-directory : neofs-testcases
312
-
313
- - name : Post the link to the report
242
+ uses : nspcc-dev/gh-push-allure-report-to-neofs@master
243
+ with :
244
+ NEOFS_WALLET : ${{ secrets.TEST_RESULTS_WALLET }}
245
+ NEOFS_WALLET_PASSWORD : ${{ secrets.TEST_RESULTS_PASSWORD }}
246
+ NEOFS_NETWORK_DOMAIN : ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }}
247
+ NEOFS_HTTP_GATE : ${{ vars.TEST_RESULTS_HTTP_GATE }}
248
+ STORE_OBJECTS_CID : ${{ vars.TEST_RESULTS_CID }}
249
+ PR_LIFETIME : ${{ vars.PR_EXPIRATION_PERIOD }}
250
+ MASTER_LIFETIME : ${{ vars.MASTER_EXPIRATION_PERIOD }}
251
+ MANUAL_RUN_LIFETIME : ${{ vars.MANUAL_RUN_EXPIRATION_PERIOD }}
252
+ OTHER_LIFETIME : ${{ vars.OTHER_EXPIRATION_PERIOD }}
253
+ ALLURE_RESULTS_DIR : ${{ env.ALLURE_RESULTS_DIR }}
254
+ ALLURE_GENERATED_DIR : ' neofs-test-allure-generated-report'
255
+
256
+ - name : Post link to s3 tests report
314
257
id : post_report_link
315
258
timeout-minutes : 60
316
259
if : always() && steps.put_report.outcome == 'success'
317
260
env :
318
- TEST_RESULTS_HTTP_GATE : ${{ vars.TEST_RESULTS_HTTP_GATE }}
319
- TEST_RESULTS_CID : ${{ vars.TEST_RESULTS_CID }}
261
+ REPORT_NEOFS_URL : ${{ steps.put_report.outputs.REPORT_NEOFS_URL }}index.html
320
262
uses : Sibz/github-status-action@v1
321
263
with :
322
264
authToken : ${{secrets.GITHUB_TOKEN}}
323
- context : ' Test report'
265
+ context : ' S3 tests report'
324
266
state : ' success'
325
267
sha : ${{github.event.pull_request.head.sha || github.sha}}
326
- target_url : https://${{ env.TEST_RESULTS_HTTP_GATE }}/${{ env.TEST_RESULTS_CID }}/${{ env.RUN_ID }}/index.html
327
-
328
- - name : Post only tests logs
329
- id : post_s3_tests_logs
330
- if : always()
331
- env :
332
- TEST_RESULTS_PASSWORD : ${{ secrets.TEST_RESULTS_PASSWORD }}
333
- TEST_RESULTS_NEOFS_NETWORK_DOMAIN : ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }}
334
- TEST_RESULTS_CID : ${{ vars.TEST_RESULTS_CID }}
335
- run : |
336
- source ${GITHUB_WORKSPACE}/s3-tests/virtualenv/bin/activate
337
- zip s3-tests.zip ${GITHUB_WORKSPACE}/s3-tests/s3-tests.log
338
- NEOFS_CLI_PASSWORD=$TEST_RESULTS_PASSWORD neofs-cli --rpc-endpoint st1.$TEST_RESULTS_NEOFS_NETWORK_DOMAIN:8080 \
339
- --wallet wallet.json object put --file s3-tests.zip --cid $TEST_RESULTS_CID --timeout 1200s \
340
- --expire-at $EXP_EPOCH \
341
- --attributes FilePath=$RUN_ID/data/s3-tests.zip,RunNumber=$RUN_ID,ContentType=application/zip
342
- working-directory : neofs-testcases
268
+ target_url : ${{ env.REPORT_NEOFS_URL }}
343
269
344
- - name : Post the link to the tests logs
345
- timeout-minutes : 60
346
- if : always() && ( steps.post_s3_tests_logs.outcome == 'success' )
347
- env :
348
- TEST_RESULTS_HTTP_GATE : ${{ vars.TEST_RESULTS_HTTP_GATE }}
349
- TEST_RESULTS_CID : ${{ vars.TEST_RESULTS_CID }}
350
- uses : Sibz/github-status-action@v1
351
- with :
352
- authToken : ${{secrets.GITHUB_TOKEN}}
353
- context : ' S3 tests logs'
354
- state : ' success'
355
- sha : ${{github.event.pull_request.head.sha || github.sha}}
356
- target_url : https://${{ env.TEST_RESULTS_HTTP_GATE }}/${{ env.TEST_RESULTS_CID }}/${{ env.RUN_ID }}/data/s3-tests.zip
357
270
271
+ - name : Set docker logs directory
272
+ run : echo "DOCKER_LOGS=${{ github.workspace }}/${{ vars.TEST_RESULTS_CID }}/${{ env.RUN_ID }}/data/docker-logs" >> $GITHUB_ENV
358
273
359
- - name : Post only docker logs
360
- id : post_dockers_logs
274
+ - name : Gather docker logs
275
+ id : gather_dockers_logs
361
276
if : always() && ( steps.prepare_test_env.outcome != 'success' || steps.put_report.outcome != 'success' )
362
- env :
363
- TEST_RESULTS_PASSWORD : ${{ secrets.TEST_RESULTS_PASSWORD }}
364
- TEST_RESULTS_NEOFS_NETWORK_DOMAIN : ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }}
365
- TEST_RESULTS_CID : ${{ vars.TEST_RESULTS_CID }}
366
277
run : |
367
- source venv.local-pytest/bin/activate && python ./tools/src/zip_dev_env_logs.py
368
- NEOFS_CLI_PASSWORD=$TEST_RESULTS_PASSWORD neofs-cli --rpc-endpoint st1.$TEST_RESULTS_NEOFS_NETWORK_DOMAIN:8080 \
369
- --wallet wallet.json object put --file containers_logs.zip --cid $TEST_RESULTS_CID --timeout 1200s \
370
- --expire-at $EXP_EPOCH \
371
- --attributes FilePath=$RUN_ID/data/containers_logs.zip,RunNumber=$RUN_ID,ContentType=application/zip
278
+ source venv.local-pytest/bin/activate
279
+ mkdir -p ${{ env.DOCKER_LOGS }} && cd ${{ env.DOCKER_LOGS }}
280
+ python ${{ github.workspace }}/neofs-testcases/tools/src/zip_dev_env_logs.py
372
281
working-directory : neofs-testcases
373
282
374
- - name : Post the link to the docker logs
283
+ - name : Post only docker logs
284
+ uses : nspcc-dev/gh-push-to-neofs@master
285
+ id : post_dockers_logs
286
+ if : steps.gather_dockers_logs.outcome == 'success'
287
+ with :
288
+ NEOFS_WALLET : ${{ secrets.TEST_RESULTS_WALLET }}
289
+ NEOFS_WALLET_PASSWORD : ${{ secrets.TEST_RESULTS_PASSWORD }}
290
+ NEOFS_NETWORK_DOMAIN : ${{ vars.TEST_RESULTS_NEOFS_NETWORK_DOMAIN }}
291
+ NEOFS_HTTP_GATE : ${{ vars.TEST_RESULTS_HTTP_GATE }}
292
+ STORE_OBJECTS_CID : ${{ vars.TEST_RESULTS_CID }}
293
+ LIFETIME : ${{ vars.OTHER_EXPIRATION_PERIOD }}
294
+ PATH_TO_FILES_DIR : ${{ env.DOCKER_LOGS }}
295
+ URL_PREFIX : ${{ env.RUN_ID }}/data
296
+
297
+ - name : Post link to docker logs
375
298
timeout-minutes : 60
376
- if : always() && ( steps.post_dockers_logs.outcome == 'success' )
377
- env :
378
- TEST_RESULTS_HTTP_GATE : ${{ vars.TEST_RESULTS_HTTP_GATE }}
379
- TEST_RESULTS_CID : ${{ vars.TEST_RESULTS_CID }}
299
+ if : steps.post_dockers_logs.outcome == 'success'
380
300
uses : Sibz/github-status-action@v1
381
301
with :
382
302
authToken : ${{secrets.GITHUB_TOKEN}}
383
303
context : ' Docker logs'
384
304
state : ' success'
385
305
sha : ${{github.event.pull_request.head.sha || github.sha}}
386
- target_url : https://${{ env .TEST_RESULTS_HTTP_GATE }}/${{ env .TEST_RESULTS_CID }}/${{ env.RUN_ID }}/data/containers_logs.zip
306
+ target_url : https://${{ vars .TEST_RESULTS_HTTP_GATE }}/${{ vars .TEST_RESULTS_CID }}/${{ env.RUN_ID }}/data/docker-logs /containers_logs.zip
0 commit comments