|
1 |
| -# CBMC packages |
2 |
| - |
3 |
| -This project builds installation packages for the tip of the develop |
4 |
| -branch for MacOS, Windows, and Ubuntu. |
5 |
| - |
6 |
| -There exist installation packages for the latest stable releases of |
7 |
| -CBMC on MacOS and Ubuntu. |
8 |
| - |
9 |
| -On MacOS: |
10 |
| -* brew install cbmc |
11 |
| - |
12 |
| -On Ubuntu: |
13 |
| -* sudo apt-get install software-properties-common |
14 |
| -* sudo add-apt-repository ppa:mt-debian/cbmc-backports |
15 |
| -* sudo apt-get update |
16 |
| -* sudo apt-get install cbmc |
17 |
| - |
18 |
| -This project uses GitHub Actions to build installation packages for |
19 |
| -the tip of the develop branch for MacOS, Windows, and Ubuntu each time |
20 |
| -new commits is added to develop. The packages reside on GitHub as |
21 |
| -artifacts that can be listed using the GitHub Actions API. |
22 |
| - |
23 |
| -A separate project implements a web page hosted on GitHub Pages that makes |
24 |
| -it easy to find the installation package for the tip of develop. |
25 |
| - |
26 |
| -The stable installation packages describe above for MacOS and Ubuntu |
27 |
| -install into the local operating system's equivalent of |
28 |
| -/usr/local/bin. |
29 |
| -This project builds two kinds of packages: |
30 |
| -* cbmc installs into the equvalent of /usr/local/bin |
31 |
| -* cbmc-latest installs into the equivalent of /usr/local/cbmc-latest/bin, |
32 |
| - and makes it possible to have two copies of cbmc --- a stable release |
33 |
| - and a tip of develop --- side-by-side on the same machine. |
34 |
| - |
35 |
| -For each operatin system: |
36 |
| -* The MacOS package is just a tar file of a directory containing the |
37 |
| - binaries. The directory should be unpacked and placed in the search |
38 |
| - path. Using Homebrew, "brew install cbmc" will install the latest |
39 |
| - stable release. These tar files are intended only to distribute the |
40 |
| - development versions between stable releases (Homebrew repository |
41 |
| - updates of the stable versions are quick). |
42 |
| - |
43 |
| -* The Windows package is an Microsoft Installer (msi) for Windows 10 |
44 |
| - with Visual Studio 2019. It can be installed by double-clicking on the |
45 |
| - installer or runnin `msexec /i <filename>`. |
46 |
| - |
47 |
| -* The Ubuntu package is a Debian package that can be installed with |
48 |
| - `dpkg -i <filename>`. There are packages for Ubuntu 18 and Ubuntu 16. |
49 |
| - These packages are intended to distribute the development versions |
50 |
| - between stable releases, but also to produce the stable packages uploaded |
51 |
| - to a Debian or Ubuntu PPA. |
52 |
| - |
53 |
| -The file packages.yaml defines the workflow for GitHub Actions to build the |
54 |
| -packages. Each package is defined by a job that runs in its own |
55 |
| -container. The subdirectories contain files and data needed to build |
56 |
| -each of the packages. |
| 1 | +# CBMC CI infrastructure |
| 2 | + |
| 3 | +This folder contains implementation and configuration files for |
| 4 | +our CI infrastructure on top of Github Actions. Aside from CI, |
| 5 | +it also contains packaging and automated release scripts. |
| 6 | + |
| 7 | +The files in this folder correspond to: |
| 8 | + |
| 9 | +* `build-and-test-Xen.yaml` -> Build Xen using CBMC tools. |
| 10 | +* `csmith.yaml` -> Run 10 randomly generated CSmith tests per Pull Request. |
| 11 | +* `doxygen-check.yaml` -> Build project doxygen documentation per Pull Request. |
| 12 | +* `pull-request-check-cpplint.sh` -> Script that's called per Pull Request to execute |
| 13 | + `cpplint` over changes. |
| 14 | +* `pull-request-check-clang-format.sh` -> Script that's called per Pull Request |
| 15 | + to execute `clang-format` over changes. |
| 16 | +* `pull-request-checks.yaml` -> Configuration file for the Github Actions CI jobs |
| 17 | + for the various platforms. |
| 18 | +* `regular-release.yaml` -> Configuration file for performing an automated release |
| 19 | + every time a tag of a specific form (`cbmc-x.y.z`) is pushed. |
| 20 | +* `release-packages.yaml` -> Configuration file for performing building of build |
| 21 | + artifacts that are attached to release when it's being made. Invoked when a |
| 22 | + regular release is performed. |
0 commit comments