Commit Graph

26 Commits

Author SHA1 Message Date
Gerwin Klein 443706fae8 github: distinguish proof PR checks from deployment run
Currently both workflows have the name "Proofs" which is confusing
in the GitHub UI.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2023-06-07 15:58:57 +10:00
Matthew Brecknell 7225fb3989 ci: Move decompilation workflow to graph-refine repository
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>
2023-03-04 08:38:33 +11:00
Gerwin Klein 477a7c1016 github: bump github action dependencies
Upgrade to node16 actions to reduce warnings on CI.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2022-11-11 14:22:37 +11:00
Gerwin Klein c3900ced40 github: add AARCH64 to build matrix
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>
2022-04-20 09:16:19 +10:00
Gerwin Klein 8aefcddb37 github: separate workflow file for AARCH64
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>
2022-04-20 09:16:19 +10:00
Gerwin Klein bf432bb631 github: changed AutoCorresSEL4 default
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>
2022-03-30 10:27:25 +11:00
Gerwin Klein a4c80a6887 github: use PR number to distinguish pull requests
${{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>
2022-02-01 14:49:38 +11:00
Gerwin Klein d831ddea67 github: run AWS proofs only on most recent push
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>
2022-01-11 18:20:45 +11:00
Gerwin Klein 8678153429 github: explicit isa branch no longer necessary
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>
2021-09-30 16:53:17 +10:00
Gerwin Klein 944df7055b github: no PR proof run for text file updates
Save some CI cycles by not running the full proofs for each
documentation update.

Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-08-16 21:55:00 +10:00
Gerwin Klein 3c1f9a8f58
github: deploy manifest after test on master (#323)
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>
2021-08-12 09:09:32 +10:00
Gerwin Klein d8699b0222 github: provide pull request head
Easier to provide at the call site than trying to extract it from within
the GitHub action.

Signed-off-by: Gerwin Klein <kleing@unsw.edu.au>
2021-07-14 19:25:00 +10:00
Gerwin Klein 106cf5ac03 github: add artifact log upload
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>
2021-07-13 21:28:21 +10:00
Gerwin Klein 90d5de3ea4 github: complete "switch proof runs to AWS"
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>
2021-07-13 21:28:21 +10:00
Gerwin Klein d51908d195 github: switch proof runs to AWS
Signed-off-by: Gerwin Klein <gerwin.klein@proofcraft.systems>
2021-07-12 15:18:04 +10:00
Gerwin Klein 0c275ddad0 github: remove Refine sessions from github CI
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>
2020-11-26 09:47:52 +11:00
Robert Sison 98c2889f1b lib: A tutorial and some 'modify' monad rules for Lib.EquivValid
Thanks to Toby Murray (@tobycmurray) for early feedback.

Signed-off-by: Robert Sison <robert.sison@unimelb.edu.au>
2020-11-17 06:06:03 +11:00
Gerwin Klein 69a8d9d6b2 github: session ASpecDoc is now merged with ASpec
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-10-27 15:52:31 +10:00
Gerwin Klein ee8c6a6404 github: fix Isabelle2020 version for now
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>
2020-10-27 15:52:31 +10:00
Gerwin Klein b8881bbf9b github: add more test sessions for master branch
These are not complete yet, but should be manageable by
github CI runners.

Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-09-10 16:09:38 +08:00
Gerwin Klein 5857efd15f github: cache ~/.stack contents
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>
2020-09-10 16:09:38 +08:00
Gerwin Klein e26ffb8c14 github: add remaining MCS tests
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>
2020-09-10 16:09:38 +08:00
Gerwin Klein 2845f9904e github: also test Refine session
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-08-10 15:48:34 +08:00
Gerwin Klein 7ba6422142 github: run on all PRs, and on push to {master, rt}
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-08-10 15:48:34 +08:00
Gerwin Klein 9f6b6c243e github: cache Isabelle images
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-08-10 15:48:34 +08:00
Gerwin Klein 963a3cca75 github: use standardised seL4 actions
Signed-off-by: Gerwin Klein <gerwin.klein@data61.csiro.au>
2020-08-10 15:48:34 +08:00