This repository contains reusable GitHub Actions workflows workflow files, intended to help unify the GitHub Actions machinery used across Beman repositories for CI. It contains the following reusable workflows:
This is the main workflow file used for CI. It takes in a JSON build configuration like the following example:
{
"gcc": [
{ "versions": ["15"],
"tests": [
{ "cxxversions": ["c++26"],
"tests": [
{ "stdlibs": ["libstdc++"],
"tests": [
"Debug.Default", "Release.Default", "Debug.TSan", "Debug.MaxSan",
"Debug.Werror", "Debug.Dynamic"
]
}
]
},
{ "cxxversions": ["c++23", "c++20", "c++17"],
"tests": [{ "stdlibs": ["libstdc++"], "tests": ["Release.Default"]}]
}
]
},
"clang-p2996": [
{ "versions": ["trunk"],
"tests": [
{ "cxxversions": ["c++26"],
"tests": [{"stdlibs": ["libc++"], "tests": ["Release.-DCMAKE_CXX_FLAGS='-freflection-latest'"]}]
}
]
}
]
}
It then runs jobs corresponding to the specified set of configurations.
This workflow is intended to help with projects that invoke CI on a scheduled basis when those jobs fail. It creates a GitHub issue describing the CI failure.
This workflow is intended to ensure that the CMake presets provided by beman/infra are valid and working for the given repository. It takes in a JSON build configuration like the following:
[
{"preset": "gcc-debug", "image": "ghcr.io/bemanproject/infra-containers-gcc:latest"},
{"preset": "gcc-release", "image": "ghcr.io/bemanproject/infra-containers-gcc:latest"},
{"preset": "llvm-debug", "image": "ghcr.io/bemanproject/infra-containers-clang:latest"},
{"preset": "llvm-release", "image": "ghcr.io/bemanproject/infra-containers-clang:latest"},
{"preset": "appleclang-debug", "runner": "macos-latest"},
{"preset": "appleclang-release", "runner": "macos-latest"},
{"preset": "msvc-debug", "runner": "windows-latest"},
{"preset": "msvc-release", "runner": "windows-latest"}
]
It then runs jobs corresponding to the specified set of presets.
This provides a workflow for running the pre-commit checks Beman libraries use, on pull requests and on push.
This provides a workflow for checking consistency of
beman-submodule
directories used by Beman repositories to deduplicate infrastructure.