The decompilation process (part of binary verification) is more tightly
coupled to the graph-refine repository than l4v, so it makes more sense
to perform decompilation in graph-refine. (It was temporarily performed
here in l4v because the graph-refine branches needed some stabilisation
work.)
This also modifies proof workflows:
- All proof workflows now upload kernel build artifacts. These can be
used as inputs to binary verification.
- Proof workflows other than the one for pull requests (proof.yml)
automatically trigger a decompilation workflow. We can still manually
initiate a decompilation workflow using the uploaded artifacts, but
doint so automatically would consume too many parallel runners.
Signed-off-by: Matthew Brecknell <matt@kry10.com>
This commit will only come into full effect when it is merged into
master, which is also the time AARCH64 tests should run regularly
in the main repository.
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
This is a separate workflow instead of being added to `proof.yml` so
that it can be switched on/off separately.
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
ci-actions/aws-proofs no longer excludes the AutoCorresSEL4 session by
default, so we no longer need to provide a fake argument to the session
parameter to not exclude it.
This is significant, because we now want the default to be non-verbose
since we're running multiple sessions in parallel.
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
${{github.ref}} will resolve to the base branch of the PR, not the
PR branch, so it is not useful for distinguishing PRs. The pull request
number will do the job.
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
By default GitHub spawns a new test for each push event. To avoid
hitting the maximum number of AWS instances too quickly, we run the PR
and master proof tests only on the most recent push since the last test
finished.
The concurrency exclusion is per git ref, i.e. separate PRs and
separate branches still run tests concurrently.
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
The default test setup now uses the correct branch from devel.xml
in the verification-manifest repo.
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
This refactors the proof runs into a separate run for the master branch
(which has deployment) and development branches (currently RT and PRs).
For the test on the master branch, we need to make sure that all tests
and the deployment action see the same revisions of all participating
repos.
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
This makes the full low-level logs available in the "Artifacts" tab of
the "Actions" screen.
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
This completes the previous commit to run all proof tests on reasonably
high-powered AWS VMs instead of GitHub runners. All tests run in one
go for efficiency.
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
With Isabelle2020 the Refine sessions are too close to memory
boundaries on github runners, the tests randomly fail with out-of-store
exceptions in polyml (but also randomly succeed without change).
Removing the session here until we have a better solution.
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
This commit ignores the Isabelle version set in the repo manifest and fixes
Isabelle2020 instead for github CI checks. The main purpose is to test this
function and to make sure the test can remain working while the repo manifest
is being updated.
After that has happened, this commit can be reverted.
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
It'd be nice to check for actual *.cabal changes, but the cache
action doesn't have access to the repo checkout yet.
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
This manually adds the HaskellKernel compile test, ASpecDoc, and
tests-xml-correct sessions, which together with the existing tests make
up the entire current MCS test suite apart from "Licenses" which is
already covered by other github CI.
This is a bit ad-hoc, ideally there should be a default "rest" session
to capture tests that will be added in the future. This will need a bit
of restructure in the CI action itself, though, so is postponed for now.
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>