mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-05 22:18:16 +00:00
56 lines
2.2 KiB
YAML
56 lines
2.2 KiB
YAML
name: 'UI report'
|
|
description: 'Prepare and upload HTML report of UI test results'
|
|
inputs:
|
|
model:
|
|
description: 'Internal model name'
|
|
required: true
|
|
lang:
|
|
description: 'Firmware language code'
|
|
required: true
|
|
status:
|
|
description: 'Either "success" or "failure"'
|
|
required: false
|
|
default: "failure"
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Set AWS credentials
|
|
uses: aws-actions/configure-aws-credentials@v4
|
|
with:
|
|
role-to-assume: arn:aws:iam::538326561891:role/gh_actions_deploy_dev_firmware_data
|
|
aws-region: eu-west-1
|
|
- run: |
|
|
MODELJOB=${{ inputs.model }}-${{ inputs.lang }}-${{ github.job }}
|
|
OUTDIR=${{ github.run_id }}/$MODELJOB
|
|
mkdir -p $OUTDIR
|
|
nix-shell --run "poetry run python ci/prepare_ui_artifacts.py || true"
|
|
mv tests/ui_tests/reports/test/* $OUTDIR || true
|
|
mv tests/ui_tests/fixtures.*.json $OUTDIR || true
|
|
mv tests/trezor.log $OUTDIR || true
|
|
diff -u tests/ui_tests/fixtures.json tests/ui_tests/fixtures.suggestion.json || true
|
|
tar -cf screens_$MODELJOB.tar tests/ui_tests/screens || true
|
|
|
|
if [ "${{ inputs.status }}" = "success" ]; then
|
|
cp .github/actions/ui-report/success.png $OUTDIR/status.png
|
|
else
|
|
cp .github/actions/ui-report/failure.png $OUTDIR/status.png
|
|
fi
|
|
shell: sh
|
|
- name: Upload report
|
|
run: |
|
|
aws s3 sync --only-show-errors ${{ github.run_id }} s3://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}
|
|
echo "[UI test report](https://data.trezor.io/dev/firmware/ui_report/${{ github.run_id }}/${{ inputs.model }}-${{ inputs.lang }}-${{ github.job }}/index.html)" >> $GITHUB_STEP_SUMMARY
|
|
shell: sh
|
|
- name: Upload test screen recording
|
|
run: |
|
|
aws s3 sync --only-show-errors ci/ui_test_records s3://data.trezor.io/dev/firmware/ui_tests
|
|
# TODO: generate directory listing / autoindex
|
|
shell: sh
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ui-records-${{ github.job }}-${{ strategy.job-index }}
|
|
path: |
|
|
# used by core_ui_main
|
|
screens_${{ inputs.model }}-${{ inputs.lang }}-${{ github.job }}.tar
|
|
retention-days: 1 # not useful after workflow finishes
|