Skip to content

bemanproject/infra-workflows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 

Repository files navigation

Beman Project Reusable Github Actions Repository

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:

reusable-beman-build-and-test.yml

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.

reusable-beman-create-issue-when-fault.yml

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.

reusable-beman-preset-test.yml

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.

reusable-beman-pre-commit.yml

This provides a workflow for running the pre-commit checks Beman libraries use, on pull requests and on push.

reusable-beman-submodule-check.yml

This provides a workflow for checking consistency of beman-submodule directories used by Beman repositories to deduplicate infrastructure.

About

Support CI for beman projects by providing reusable GitHub Actions workflow files

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •