Skip to content

Next

Next #15

Workflow file for this run

name: Build Linux
on:
push:
jobs:
build-linux-kernel:
uses: ./.github/workflows/build-linux.yml
secrets: inherit
test:
needs: [build-linux-kernel]
name: Test and coverage
runs-on: ubuntu-22.04
env:
LLVM_GSYMUTIL: /usr/bin/llvm-gsymutil-14
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@nightly
- uses: Swatinem/rust-cache@v2
- uses: actions/setup-python@v5
id: py312
with:
python-version: '3.12'
- name: Install required tools
run: sudo apt-get install -y llvm-14
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Build main.sh
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
KERNEL_URL: ${{ needs.build-linux-kernel.outputs.kernel-url }}
PYTHON: ${{ steps.py312.outputs.python-path }}
run: |
# Yes, there appears to be no way to just retrieve the
# uploaded artifact. One can't use actions/download-artifact
# and provide any of the outputs of actions/upload-artifact.
# Neither is it possible to just download the thing directly,
# because contents are unconditionally zipped. Good. Lord.
curl -L \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${GH_TOKEN}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
-o linux-kernel.zip \
"${KERNEL_URL}"
unzip linux-kernel.zip
cat <<EOF > main.sh
export PYTHON=${PYTHON}
exec cargo test --workspace --all-targets --features=nightly,generate-large-test-files -- --include-ignored
EOF
chmod a+x main.sh
- name: Test
uses: danobi/vmtest-action@master
with:
kernel: bzImage
command: "/bin/bash -c ${{ github.workspace }}/main.sh"