name: Reggie Regression on: push: branches: - '*' pull_request: branches: - '*' workflow_dispatch: concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} cancel-in-progress: true jobs: build: name: Regression Testing ${{ matrix.target }} runs-on: [ self-hosted, regression ] if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name strategy: matrix: target: [aarch64, x86_64] fail-fast: false steps: - uses: actions/checkout@v4 with: clean: true submodules: recursive - name: Clean up cruft ... run: | ./test/env -c - name: Set Build Variables id: vars run: | target=${{ matrix.target }} echo "dir=infix-$target" >> $GITHUB_OUTPUT echo "tgz=infix-$target.tar.gz" >> $GITHUB_OUTPUT - name: Restore Cache of dl/ uses: actions/cache@v4 with: path: dl/ key: dl-netconf-${{ hashFiles('.git/modules/buildroot/HEAD', 'configs/*', 'package/*/*.hash') }} restore-keys: | dl- - name: Restore Cache of .ccache/ uses: actions/cache@v4 with: path: .ccache/ key: ccache-x86_64-${{ hashFiles('.git/modules/buildroot/HEAD', 'package/*/*.hash') }} restore-keys: | ccache-${{ matrix.target }}- ccache- - name: Configure ${{ matrix.target }} run: | target=${{ matrix.target }}_defconfig echo "Building $target ..." make $target - name: Unit Test run: | make test-unit - name: Build run: | make - name: Prepare Artifact run: | cd output/ mv images ${{ steps.vars.outputs.dir }} ln -s ${{ steps.vars.outputs.dir }} images tar cfz ${{ steps.vars.outputs.tgz }} ${{ steps.vars.outputs.dir }} - name: Upload Artifact uses: actions/upload-artifact@v4 with: path: output/${{ steps.vars.outputs.tgz }} name: artifact-${{ matrix.target }} - name: Regression Test if: matrix.target == 'x86_64' run: | make test - name: Publish Test Result # Ensure this runs even if Regression Test fails if: always() run: cat test/.log/last/result-gh.md >> $GITHUB_STEP_SUMMARY