Skip to content

Next

Next #29

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:
ARTIFACT_URL: https://api.github.com/repos/d-e-s-o/blazesym/actions/artifacts/${{ needs.build-linux-kernel.outputs.kernel-artifact-id }}/zip
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 --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}"
unzip artifact.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@v0.6
with:
kernel: bzImage
command: "/bin/bash -c ${{ github.workspace }}/main.sh"