Commit Graph

51 Commits

Author SHA1 Message Date
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
Gerwin Klein
dbab25c8d3 github: deploy verification-manifest on preprocess
Automatically keep verification-manifest in sync with
preprocess-equivalent changes.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-18 16:58:57 +10:00
Gerwin Klein
697430abf0 github: enable hw test for imx8mm
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-16 15:56:45 +10:00
Gerwin Klein
7f08674bb7 github: add TX2 to hardware test
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-13 18:16:54 +10:00
Gerwin Klein
1324734ffb github: adjust event name
Trigger moved to pull_request_target, so event name is changing as well.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-12 18:24:07 +10:00
Gerwin Klein
2e59eeae7d github: remove test branch trigger
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-12 18:24:07 +10:00
Gerwin Klein
f975153948 github/hw: rpi3 power-up not fully stable yet
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-10 17:54:24 +10:00
Gerwin Klein
934fc2642b github: split off more x86 sessions
More x86 boards have become available, so we can have one session
per mode and compiler.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-10 17:54:24 +10:00
Gerwin Klein
302339fd8a for testing only
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-10 17:54:24 +10:00
Gerwin Klein
0fa13e059a github: add action for hardware test runs
This switched the action from pull_request to pull_request_target,
because we need access to secrets. GITHUB_TOKEN permissions are
downgraded to PR-like permissions, and the action needs to be triggered
manually by labelling with label 'hw-test'.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-10 17:54:24 +10:00
Gerwin Klein
d93aa01459 github: split sel4test into separate workflows
The reason is that with separate workflow files allow different
triggers. In particular, we don't want to re-run all simulations
on all `labeled` triggers, but if we explicitly skip the simulation
job for those triggers, than previous simulation runs are not
shown any more in the GitHub check status, so failed runs will be
overlooked.

This should achieve both: no unnecessary runs, and visible status.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-26 21:04:52 +10:00
Gerwin Klein
4cdd97c532 github: use correct label field
The trigger matched against the whole label object, not the name as
it should have.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-26 21:04:52 +10:00
Gerwin Klein
f1ac3d829e github sel4test: don't run on PRs to docs
Save some checking time for changes that are to docs only and
don't affect sources.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-26 14:58:09 +10:00
Gerwin Klein
bd9a8b2ff7 github: constrain triggers for longer builds
The previous trigger would start duplicate builds for each new
label added to a PR. This commit locks this down a bit more so
that builds only run when the trigger label is added or on other
triggers when the label is present.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-26 14:58:09 +10:00
Gerwin Klein
52a89f9e0f github: add action for hardware builds
The action is triggered on push to master or when the label "hw-build"
is present on pull requests.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-26 14:58:09 +10:00
Gerwin Klein
c650c41848 github: run SimplExportAndRefine conditionally
The SimplExportAndRefine session is one of the steps of binary
verification and only available for ARM and RISCV64.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-16 11:11:13 +10:00
Gerwin Klein
0665ae3edd github: add C proof check on labelled PR
This action will run the C proofs when the label `proof-test` is added
to a pull request. Intended to be used when the preprocess test has
failed and the PR is ready to check proofs.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-16 08:12:28 +10:00
Gerwin Klein
1dcff9cc20 Add GitHub action for sel4test simulation runs
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-05 12:57:20 +10:00
Gerwin Klein
c6238208bb github: run C parser on push/PR
This action runs the verification C parser on the main kernel
configurations to check that the code is in the C verification subset.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-06-30 14:04:00 +10:00
Gerwin Klein
d1643774cd github: CI action to lint libsel4 IDL files
This will lint everything called `sel4*.xml` under `libsel4/`.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-06-22 11:26:17 +10:00
Gerwin Klein
95fda2bcc1 github: add a GitHub action to build the manual
This will build a PDF of the reference manual in draft mode
and upload that PDF as a build artifact.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-06-18 08:35:55 +10:00
Gerwin Klein
41497c6e60 Add MCS to the preprocess check
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-05-07 09:54:27 +10:00
Luke Mondy
98ca559bb3 CI: Add a PR check to do a stand-alone kernel compilation (#236)
CI: PR check to do a stand-alone kernel compile

On a PR, compile all verified configs of seL4.

Signed-off-by: Luke Mondy <luke.mondy@data61.csiro.au>
Co-authored-by: Luke Mondy <luke.mondy@data61.csiro.au>
2020-08-11 16:22:04 +08:00
Gerwin Klein
ab5b6bd6bf Refactor github workflows; add preprocess test
This commit refactors the github workflows into two
file (push/pull request), makes use of the new central
seL4 github actions, and adds the preprocess test for
pull requests.

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-06-18 12:47:54 +10:00
Gerwin Klein
62b37194a5 github: invoke git status correctly
The -u option takes its argument without space.

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-05-12 11:09:01 +08:00
Gerwin Klein
8a5ee2b5f8 github: sync with test invocation on bamboo
This should not change behaviour, but makes sure we replicate the test
setup more precisely.

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-05-12 11:08:22 +08:00
Gerwin Klein
a4b1e347f6 github: use gitlint config from sel4_tools
Previously, gitlint would use the configuration from the local
repository only.

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-05-12 11:07:46 +08:00