Test #22
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
- name: Install required tools | |
run: sudo apt-get install -y llvm-14 | |
# We don't want a custom test runner because we run in a VM. | |
- name: Remove .cargo/config.toml | |
run: rm .cargo/config.toml | |
- name: Build main.sh | |
env: | |
ARTIFACT_URL: ${{ needs.build-linux-kernel.outputs.kernel-artifact-url }} | |
PYTHON: ${{ steps.py312.outputs.python-path }} | |
run: | | |
cargo test --no-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 does it seem possible to just download the thing | |
# directly, because contents are unconditionally zipped. Good. | |
# Lord. | |
curl --location \ | |
--fail-with-body \ | |
--header "Accept: application/vnd.github+json" \ | |
--header "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}"\ | |
--header "X-GitHub-Api-Version: 2022-11-28" \ | |
--output artifact.zip \ | |
"${ARTIFACT_URL}" | |
# This unzip will produce the kernel bzImage. | |
unzip artifact.zip | |
cat <<EOF > main.sh | |
set -e | |
export PYTHON=${PYTHON} | |
cargo test --features=dont-generate-unit-test-files -- --include-ignored | |
EOF | |
cat main.sh | |
chmod a+x main.sh | |
- name: Test | |
uses: danobi/vmtest-action@master | |
with: | |
kernel: bzImage | |
command: sh -c 'cd ${{ github.workspace }} && ./main.sh' |