Skip to content

Reference check mechanism #98

Reference check mechanism

Reference check mechanism #98

Workflow file for this run

name: E2E Tests
on:
pull_request:
paths:
- '.github/workflows/e2e_test.yaml'
- '.github/matrix_includes.json'
- 'test/**'
- '!test/RobotTests.md'
- '!test/tests.py'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
matrix_prep:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4
- uses: JoshuaTheMiller/conditional-build-matrix@v2.0.1
id: set-matrix
with:
inputFile: '.github/matrix_includes.json'
filter: '[?runOnBranch==`always`]'
test:
needs: [ matrix_prep ]
runs-on: ${{ matrix.runs_on }}
continue-on-error: true
strategy:
matrix: ${{ fromJson(needs.matrix_prep.outputs.matrix) }}
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
- name: Install pip dependencies
run: |
pip install --upgrade pip
pip install -r test/requirements.txt
- name: Setup vcpkg environment
uses: ARM-software/cmsis-actions/vcpkg@v1
with:
config: "./test/vcpkg-configuration.json"
vcpkg-downloads: "${{ github.workspace }}/.vcpkg/downloads"
cache: "-"
- name: Activate Arm tool license
run: |
armlm activate --server https://mdk-preview.keil.arm.com --product KEMDK-COM0
working-directory: ./test
- name: Binary version info
shell: bash
run: |
csolution${{ matrix.binary_extension }} -V
cpackget${{ matrix.binary_extension }} -V
cbuild${{ matrix.binary_extension }} -V
cbuild2cmake${{ matrix.binary_extension }} -V
cbuildgen${{ matrix.binary_extension }} -V
- name: Run Test
shell: bash
run: |
robot --outputdir reports-${{ matrix.target }}-${{ matrix.arch }} \
--settag ${{ matrix.target }}-${{ matrix.arch }} \
--name ${{ matrix.target }}-${{ matrix.arch }} \
./test
- name: Archieve test results
if: always()
uses: actions/upload-artifact@v4
with:
name: reports-${{ matrix.target }}-${{ matrix.arch }}
path: reports-${{ matrix.target }}-${{ matrix.arch }}
report:
runs-on: ubuntu-latest
if: always()
needs: test
permissions: write-all
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
- name: Install pip dependencies
run: |
pip install --upgrade pip
pip install -r test/requirements.txt
- name: Download reports
uses: actions/download-artifact@v4
with:
path: artifacts
pattern: reports-*
- name: Consolidate robot test results
working-directory: artifacts
run: |
python -m robot.rebot --name Collective_Robot_Results --outputdir collective_robot_results --output output.xml \
./reports-windows-amd64/output.xml \
./reports-linux-amd64/output.xml \
./reports-darwin-amd64/output.xml
- name: Generate Summary report
if: always()
run: |
python ./test/lib/execution_summary.py artifacts -o artifacts/collective_robot_results/output.xml -m summary_report.md
- name: Print E2E Report
if: always()
run: cat summary_report.md >> $GITHUB_STEP_SUMMARY
- name: Archieve consolidated test results
if: always()
uses: actions/upload-artifact@v4
with:
name: consolidated-reports
path: artifacts/collective_robot_results