Commit Graph

77 Commits

Author SHA1 Message Date
Gerwin Klein
56b42cf87e github: update Isabelle branch for MCS proofs
MCS proofs are now also running on Isabelle2025.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2026-02-18 13:52:09 +11:00
Gerwin Klein
dec87e641a github: main l4v now on Isabelle2025
set ts-2025 for master branch l4v and leave on ts-2024 for MCS until MCS
is updated to Isabelle2025 as well.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-06-13 11:29:05 +01:00
Gerwin Klein
ab5192f81a github: point proof tests to Isabelle ts-2024
We're currently using AWS Arm VMs, and vanilla Isabelle2024 ships a Z3
version that does not work on Arm. Using the ts-2024 branch fixes this
until we have upgraded everything to Isabelle2025.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-06-07 10:55:12 +02:00
Gerwin Klein
38e889da3b github: deploy mcs verification manifest
Deploy the MCS verification manifest for versions that have no MCS
preprocess differences. These may be different from non-MCS preprocess
outcomes, and since the MCS verification is on a branch, we can deploy
it separately.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-04-02 08:58:31 +11:00
Gerwin Klein
c674b62a00 github: rename hardware test workflow file
The HW test workflow file is now responsible for multiple kinds of
hardware test.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-02-18 09:22:15 +11:00
Gerwin Klein
3c7c4d1182 github: add manual trigger where possible
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-02-18 09:22:15 +11:00
Gerwin Klein
c4e4b37fdf github: update name of deployment workflow
Disambiguate from seL4Test runs on pull requests.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-02-18 09:22:15 +11:00
Gerwin Klein
bbb2b6b6b7 github: factor out common workflows
The new reusable workflow feature of GitHub allows us to avoid
repeating the workflow definitions and collect them in the ci-actions
repo instead.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2025-02-18 09:22:15 +11:00
Gerwin Klein
1732c05ef6 github: pin Ubuntu 22.04 for deployment step
Python 3.12 in Ubuntu 24.04 has incompatible packages.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-12-19 17:42:27 +11:00
Gerwin Klein
7d493561cb github: pin style check to ubuntu-22.04
The default python version changes on ubuntu-24, which breaks the
version of cmake-format we are currently using.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-12-19 11:05:25 +11:00
Nick Spinale
dbd6efc507 libsel4: rename interface XML files
Before, some object API XML files conflicted when the include,
arch_include, and sel4_arch_include directories were combined:

- include/interfaces/sel4.xml
- arch_include/*/interfaces/sel4arch.xml
- sel4_arch_include/*/interfaces/sel4arch.xml

This commit renames them to:

- include/interfaces/object-api.xml
- arch_include/*/interfaces/object-api-arch.xml
- sel4_arch_include/*/interfaces/object-api-sel4-arch.xml

Now, when the include, arch_include, and sel4_arch_include directories
are combined, we are left with:

- interfaces/object-api.xml
- interfaces/object-api-arch.xml
- interfaces/object-api-sel4-arch.xml

Signed-off-by: Nick Spinale <nick@nickspinale.com>
2024-06-30 18:28:12 +10:00
Gerwin Klein
d513db6cb8 github: use default Isabelle version for proofs
Use the Isabelle version set in the verification manifest instead of
overriding to a specific version here. This will automatically update
as the verification repository updates to new Isabelle versions.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-06-14 09:06:08 +10:00
Axel Heider
4d7cde075b CI: cancel older concurrent PR runs
Act on PRs only, not on upstreaming.

Signed-off-by: Axel Heider <axelheider@gmx.de>
2024-03-26 20:56:54 +01:00
Gerwin Klein
4079d4c8b4 github: add AARCH64 C proof session
CRefine is now available for AARCH64 in l4v.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-03-25 17:40:37 +00:00
Axel Heider
a8eebabf58 CI: remove obsolete concurrency setup in job
The concurrency is set for the whole workflow already

Signed-off-by: Axel Heider <axelheider@gmx.de>
2024-02-09 12:59:04 +00:00
Gerwin Klein
1a52833c6f github: disambiguate proof artifact upload
Proof artifact upload had name clashes for different artifacts from the
same job that previously would overwrite each other and with v4 actions
now error. This commit disambiguates the names.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-02-09 11:02:49 +11:00
Axel Heider
91ec17c5bf CI: cancel older concurrent PR runs
Remove the space in the workflow name to ensure there are no side
effects when using it as an identifier.

Signed-off-by: Axel Heider <axelheider@gmx.de>
2024-01-31 10:25:00 +11:00
Axel Heider
eda441ebe7 CI: the seL4/machine_queue repo is public now
Signed-off-by: Axel Heider <axelheider@gmx.de>
2024-01-30 12:26:50 +00:00
Gerwin Klein
fa28409d55 github: bump GitHub actions to node20
GitHub has updated the LTS node.js version from 16 to 20 and is
starting to show warnings for node16 actions.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2024-01-29 10:11:25 +11:00
Axel Heider
73553606f1 CI: update deploy workflow also
This is missing in commit e6fbbbb0

Signed-off-by: Axel Heider <axelheider@gmx.de>
2024-01-13 10:17:31 +11:00
Axel Heider
e6fbbbb065 CI: do simulation and HW build with LLVM on RISCV
Signed-off-by: Axel Heider <axelheider@gmx.de>
2024-01-12 07:50:50 +11:00
Axel Heider
454245febd CI: build standalone kernel for RISCV64 with LLVM
Signed-off-by: Axel Heider <axelheider@gmx.de>
2024-01-12 07:50:50 +11:00
Gerwin Klein
7bad3610f1 github: upload kernel.elf build artifact
The kernel.elf file is occasionally more useful for debugging than the
final board image.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-12-12 08:12:10 +01:00
Gerwin Klein
b7ad2e0c66 github: fix sel4bench trigger in GitHub workflow
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-11-01 08:43:06 +11:00
Gerwin Klein
a34aed4b70 github: add MCS C proofs to proof check
These proofs are currently still in progress (unfinished), but already
check large parts of the kernel and can break when the MCS preprocess
check fails.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-10-24 14:19:54 +11:00
Gerwin Klein
d06d281ff2 github: bump Isabelle version on proof checks
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-10-17 14:46:51 +11:00
Matthew Brecknell
b9c5f53bce ci proof: Upload build artifacts
For proof workflow runs on seL4 PRs, upload kernel build artifacts
generated by the aws-proofs action. These can be used to run binary
verification, although we currently still require binary verification to
be manually triggered.

Signed-off-by: Matthew Brecknell <matt@kry10.com>
2023-03-03 17:47:32 +11:00
Gerwin Klein
bbafa62d30 github: update to Isabelle2022
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-11-21 15:59:06 +11:00
Gerwin Klein
ab30e1cad6 github: bump action deps to node16 actions
GitHub has deprecated the old node12-based actions.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-11-21 15:59:06 +11:00
Gerwin Klein
fa4dfa93e4 github: enable sel4bench hardware test on PR
Like the sel4test hardware runs, a sel4bench run can be requested via
adding a label (`hw-bench`) to any PR.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-11-11 17:08:57 +11:00
Gerwin Klein
1a3cc23692 github: switch proofs to Isabelle2021-1
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-05-18 13:31:26 +10:00
matt rice
64970f67de ci: run apt-get update before install
Signed-off-by: matt rice <ratmice@gmail.com>
2022-03-22 18:33:38 +11:00
matt rice
9d2a95fbac ci: add syscall.xsd to xml_lint
Signed-off-by: matt rice <ratmice@gmail.com>
2022-03-22 18:33:38 +11:00
matt rice
b0d70f1ebc add libsel4/tools/sel4_idl.xsd to replace dtd
No intended changes to the schema, just change
the schema from dtd to xsd, and update ci to use it.

Signed-off-by: matt rice <ratmice@gmail.com>
2022-03-22 18:33:38 +11:00
Gerwin Klein
338a7f1202 github: trigger xml-lint test on dtd changes
Changes to the dtd can also invalidate the test, so must be part of
the trigger.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-02-06 14:33:08 +11:00
Gerwin Klein
3359c82b4a github: standalone-compilation for AARCH64
Use the AARCH64_verified config for the standalone kernel compilation
check.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-02-03 19:13:55 +11:00
Gerwin Klein
8ff9189be3 github: add AARCH64 to preprocess test
There is now an `AARCH64_verified` configuration which is used in
ongoing verification of the seL4 AArch64 port. This commit enables
the preprocess check for this config so that verification impact
becomes visible on pull requests.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-02-03 17:19:58 +11:00
Gerwin Klein
0e91dccf5a github: let hw test run to completion on failure
Merge to master is infrequent enough that we can let the hardware test
suite run to completion even if one of the tests failed. This will
provide more information in the history on which boards worked for
which commits, even if the test for one is broken for some time.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-02-02 20:16:09 +11:00
Gerwin Klein
de4341adee github: use PR number instead of ref
${{github.ref}} is not what it seems for pull request target. It will
point to the base branch instead of refs/pulls/<num> like the docs
would suggest. Using the PR number directly should work.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-01-19 09:28:53 +11:00
Gerwin Klein
e1b73a45eb github: proof test only for most recent push
By default GitHub spawns a new test for each push to a PR. Since the
proof tests have limited resources, we want only the most recent push
to be triggered, intermediate pushes will be skipped.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-01-11 14:42:18 +11:00
Gerwin Klein
9102a83fc7 github: avoid replicating hardware run matrix
The matrix for hardware runs is now generated centrally from the
ci-actions repo to avoid inconsistencies when the workflow is replicated
in other repos.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-11-19 19:16:04 +11:00
Gerwin Klein
e5791a76cb github: run actions with secrets only in seL4 org
Some of the Github actions in this repository require secrets for
access to hardware test or other compute infrastructure, or for
deployment. When these are run in a fork on GitHub they are safe,
but generate annoying error messages.

This commit adds tests in the relevant actions whether they are run
from the seL4 org or not, and skips the action when they are run
outside. This should make the remaining actions more useful on forks.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-10-18 14:47:07 +11:00
Gerwin Klein
45dc26ded9 github/proofs: update to Isabelle2021
The proofs have switched to a new Isabelle version.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-10-01 10:01:17 +10:00
Kent McLeod
1c8f1a390c .github: remove ARMv6 tests
Support for ARMv6 is being removed.

Signed-off-by: Kent McLeod <kent@kry10.com>
2021-09-30 18:07:19 +10:00
Gerwin Klein
863ee83ca8 github: drop python2 tests
Since the build system defaults to python3 now, these have not worked
as advertised in a while now (they have test py3 twice).

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-09-09 08:43:56 +10:00
Gerwin Klein
f236ae8935 github: trigger main test on push to master
The trigger action sends repository_dispatch events to all
main test repositories of the manifests this repo is part of.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-27 14:08:23 +10:00
Gerwin Klein
43b2029d02 github: clearer top-level name for compile action
Previous "Kernel" showed up for the badge and main checks group, which
is not very informative.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-20 13:42:48 +10:00
Gerwin Klein
76532c1eae github: more fine-grained concurrency groups
Previously the `concurrency` statement also prevented concurrency
within the build matrix which we do not want.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-20 13:42:48 +10:00
Gerwin Klein
acbc4e6ddf github: separate sel4test for deployment on master
This commit pulls out a separate workflow for sel4test (simulation +
hardware runs) on pushes to master, and deploys a new default.xml to
sel4test-manifest when the test is successful.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-20 12:05:03 +10:00
Gerwin Klein
82e7a0251d git hw test: enable zynqmp
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-19 08:46:24 +10:00