CI-CD

ESBMC repository relies on GitHub Actions for all its CI/CD needs. The workflows files are all inside the .github/workflows and are described as follows:

  • benchexec: This workflow does a run of benchexec in a given branch. It is only used by manual dispatch.
  • build: This is the main build workflow, which is invoked for every push/PR in ESBMC. It works by running fuzzing and unit tests and by: (1) configuring a build environment for macOS, Linux, and Windows; (2) Building the system and saving the results as artifacts; (3) Running the regression and unit tests.
  • linter: This applies linters over the code.
  • release: Similar to the build, but generates release builds of ESBMC and creates a new release at the GitHub page.
  • sanitizers: Does a quick build of ESBMC with clang sanitizers enabled.