mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
It should be possible to create test reports manually, so logically the GitHub workflow should call a make rule in test.mk Untested: branding, or any case where Infix is used as a BR2_EXTERNAL Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
106 lines
3.2 KiB
YAML
106 lines
3.2 KiB
YAML
name: Test Infix
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
infix_repo:
|
|
description: 'Repo to checkout (for spin overrides)'
|
|
required: false
|
|
default: kernelkit/infix
|
|
type: string
|
|
|
|
workflow_call:
|
|
inputs:
|
|
target:
|
|
required: true
|
|
type: string
|
|
name:
|
|
required: true
|
|
type: string
|
|
infix_repo:
|
|
required: false
|
|
type: string
|
|
default: kernelkit/infix
|
|
ninepm-conf:
|
|
required: false
|
|
type: string
|
|
default: ''
|
|
test-path:
|
|
required: false
|
|
type: string
|
|
default: 'test'
|
|
|
|
env:
|
|
TARGET: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target || inputs.target }}
|
|
INFIX_REPO: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.infix_repo || inputs.infix_repo }}
|
|
NINEPM_CONF: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.ninepm-conf || inputs.ninepm-conf }}
|
|
TEST_PATH: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.test-path || inputs.test-path }}
|
|
|
|
jobs:
|
|
test:
|
|
name: Regression Test ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.name || inputs.name }} ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.target || inputs.target }}
|
|
runs-on: [self-hosted, regression]
|
|
steps:
|
|
- name: Checkout infix repo
|
|
uses: actions/checkout@v4
|
|
with:
|
|
repository: ${{ env.INFIX_REPO }}
|
|
ref: ${{ github.ref }}
|
|
clean: true
|
|
fetch-depth: 0
|
|
submodules: recursive
|
|
|
|
- name: Set Build Variables
|
|
id: vars
|
|
run: |
|
|
if [ -n "${{ needs.build.outputs.build_id }}" ]; then
|
|
echo "INFIX_BUILD_ID=${{ needs.build.outputs.build_id }}" \
|
|
>>$GITHUB_ENV
|
|
fi
|
|
|
|
- name: Configure ${{ env.TARGET }}
|
|
run: |
|
|
make ${{ env.TARGET }}_defconfig
|
|
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
pattern: "artifact-*"
|
|
merge-multiple: true
|
|
|
|
- name: Restore ${{ env.TARGET }} output/
|
|
run: |
|
|
target=${{ env.TARGET }}
|
|
name=${{ inputs.name }}
|
|
|
|
ls -l
|
|
mkdir -p output
|
|
mv ${name}-${target}.tar.gz output/
|
|
cd output/
|
|
tar xf ${name}-${target}.tar.gz
|
|
ln -s ${name}-${target} images
|
|
|
|
- name: Regression Test ${{ env.TARGET }}
|
|
run: |
|
|
if [ -n "$NINEPM_CONF" ]; then
|
|
export NINEPM_PROJ_CONFIG="${GITHUB_WORKSPACE}/$NINEPM_CONF"
|
|
echo "DEBUG: NINEPM_PROJ_CONFIG is '$NINEPM_PROJ_CONFIG'"
|
|
fi
|
|
make test
|
|
|
|
- name: Publish Test Result for ${{ env.TARGET }}
|
|
# Ensure this runs even if Regression Test fails
|
|
if: always()
|
|
run: cat $TEST_PATH/.log/last/result-gh.md >> $GITHUB_STEP_SUMMARY
|
|
|
|
- name: Generate Test Report for ${{ env.TARGET }}
|
|
# Ensure this runs even if Regression Test fails
|
|
if: always()
|
|
run: |
|
|
make test-dir="$(pwd)/$TEST_PATH" test-report
|
|
|
|
- name: Upload Test Report as Artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: test-report
|
|
path: output/images/test-report.pdf
|