Files
infix/.github/workflows/build.yml
T
Tobias WaldekranzandJoachim Wiberg 175f7e1c58 x86_64: Make the test environment more customizable
- Collect all test related targets under the test- prefix.

- Add target to run test suite against a `make run` instance. The
  intended use-case is that you are testing out a new build with `make
  run`, and then realize that you want to run some tests.  With this
  change, it is now possible to run `make infix-run-check` from a
  separate terminal - which attaches to the running instance and runs
  the tests.

- Provide -sh targets to spawn interactive environments, which is
  useful during debugging.

- Allow the user to supply a custom suite or list of tests to be run
  by 9PM.
2023-06-14 17:40:16 +02:00

96 lines
3.1 KiB
YAML

name: Bob the Builder
on:
pull_request:
branches:
- main
types:
- closed
workflow_dispatch:
jobs:
build:
if: ${{ github.event.pull_request.merged }} || github.event_name == 'workflow_dispatch'
name: Build ${{ matrix.platform }} ${{ matrix.variant }}
runs-on: ubuntu-latest
strategy:
matrix:
platform: [aarch64, x86_64]
variant: [netconf, classic]
fail-fast: false
steps:
- uses: actions/checkout@v3
- name: Set Build Variables
id: vars
run: |
if [ "${{ matrix.variant }}" = "netconf" ]; then
target=${{ matrix.platform }}
else
target=${{ matrix.platform }}-${{ matrix.variant }}
fi
echo "dir=infix-$target" >> $GITHUB_OUTPUT
echo "tgz=infix-$target.tar.gz" >> $GITHUB_OUTPUT
- name: Restore Cache of dl/
uses: actions/cache@v3
with:
path: dl/
key: dl-${{ matrix.platform }}-${{ matrix.variant }}-${{ hashFiles('.git/modules/buildroot/HEAD', 'configs/*', 'package/*/*.hash') }}
restore-keys: |
dl-${{ matrix.platform }}-${{ matrix.variant }}-
dl-${{ matrix.platform }}-
dl-
- name: Restore Cache of .ccache/
uses: actions/cache@v3
with:
path: .ccache/
key: ccache-${{ matrix.platform }}-${{ matrix.variant }}-${{ hashFiles('.git/modules/buildroot/HEAD', 'package/*/*.hash') }}
restore-keys: |
ccache-${{ matrix.platform }}-${{ matrix.variant }}-
ccache-${{ matrix.platform }}-
ccache-
- name: Configure & Build
run: |
if [ "${{ matrix.variant }}" = "netconf" ]; then
target=${{ matrix.platform }}_defconfig
else
target=${{ matrix.platform }}_${{ matrix.variant }}_defconfig
fi
echo "Buildring $target ..."
make $target
make
- name: Test
if: matrix.platform == 'x86_64' && matrix.variant == 'netconf'
run: |
make test-qeneth
- name: Prepare Artifact
run: |
cd output
mv images ${{ steps.vars.outputs.dir }}
tar chfz ${{ steps.vars.outputs.tgz }} ${{ steps.vars.outputs.dir }}
ls -l
ls -l ${{ steps.vars.outputs.dir }}
- uses: actions/upload-artifact@v3
with:
path: output/${{ steps.vars.outputs.tgz }}
release:
if: github.repository == 'kernelkit/infix' && github.ref == 'refs/heads/main'
name: Upload Latest Build
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
- uses: pyTooling/Actions/releaser@main
with:
tag: latest
rm: true
token: ${{ secrets.GITHUB_TOKEN }}
files: artifact/*
- name: Summary
run: |
cat <<EOF >> $GITHUB_STEP_SUMMARY
# Latest Build Complete! :rocket:
For the public download links of these build artifacts, please see:
<https://github.com/kernelkit/infix/releases/tag/latest>
EOF