You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/.github/actions/ui-report/action.yml

56 lines
2.2 KiB

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 ${{ 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 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