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 flavor: required: false type: string default: '' 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: FLV: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.flavor || inputs.flavor }} 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 ${{ inputs.name }} ${{ 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 echo "flv=$FLV" >> $GITHUB_OUTPUT - name: Configure ${{ inputs.target }}${{ steps.vars.outputs.flv }} run: | make ${{ inputs.target }}${{ steps.vars.outputs.flv }}_defconfig - uses: actions/download-artifact@v4 with: pattern: "artifact-*" merge-multiple: true - name: Restore x86-64${{ steps.vars.outputs.flv }} output/ run: | target=${{ inputs.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 x86_64${{ steps.vars.outputs.flv }} 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 x86_64${{ steps.vars.outputs.flv }} # 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 x86_64${{ steps.vars.outputs.flv }} # Ensure this runs even if Regression Test fails if: always() run: | asciidoctor-pdf \ --theme $TEST_PATH/9pm/report/theme.yml \ -a pdf-fontsdir=$TEST_PATH/9pm/report/fonts \ $TEST_PATH/.log/last/report.adoc \ -o $TEST_PATH/.log/last/report.pdf - name: Upload Test Report as Artifact uses: actions/upload-artifact@v4 with: name: test-report path: ${{ env.TEST_PATH }}/.log/last/report.pdf