Skip to content

Commit c9679ab

Browse files
authored
Merge pull request #5851 from NlightNFotis/cleanup_github_folder
[CI] Cleanup .github/ folder
2 parents 308cc0a + 4daa686 commit c9679ab

11 files changed

+50
-537
lines changed

.github/workflows/README.md

Lines changed: 48 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,48 @@
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.
23+
24+
## CI Platforms
25+
26+
We are currently building and testing CBMC under the following configurations:
27+
28+
* `make` * `gcc` * `linux` (ubuntu 20.04)
29+
* `make` * `clang` * `linux` (ubuntu 20.04)
30+
* `cmake` * `gcc` * `linux` (ubuntu 20.04)
31+
* `make` * `clang` * `macos` (10.15)
32+
* `cmake` * `clang` * `macos` (10.15)
33+
* `cmake` * `vs` * `windows` (vs2019)
34+
35+
Aside from the main platform builds for testing, we are also performing
36+
some auxiliary builds that test packaging support to be up-to-date. We
37+
do that for:
38+
39+
* a `docker` image
40+
* an `ubuntu-20.04` package
41+
* an `ubuntu-18.04` package
42+
* a `windows-msi` installer package
43+
44+
Last but not least, we are also performing a coverage statistics collection
45+
job, which builds CBMC with coverage information on, and then runs the tests,
46+
finally uploading the results to [Codecov](https://about.codecov.io) which
47+
then updates pull request with coverage statistics after the job has finished
48+
running.

.github/workflows/TODO.md

Lines changed: 0 additions & 18 deletions
This file was deleted.

.github/workflows/debian/64bit_regression_tests.patch

Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
 (0)