Documentation
- ๐ Welcome to the CMake RE Documentation
- ๐ Getting started with CMake RE for C++
- ๐ฆ Getting started with CMake RE for Rust (alpha)
- Key Principles and Goals
- ๐ชฉ Developer Machine Digital Twin
- ๐ฉ๐ผโ๐ป cmake-re --help | Command Line Reference
- ๐ฆ L1 Build cache
- ๐ฆ L1 Build Cache Sharing
- ๐ฆ FetchContent() and Package Managers
- ๐ป Environments
- ๐ป Environment Layers Specifications
- ๐ป Self-hosted runners
- Authentication
- Ignore and exclude - Caching and Mirroring
- Accessing hermetic builds folders
- Continuous integration
- Environment variables
- ๐ก๏ธ Data Security and Privacy
- tipi - ๐ฎ EXPERIMENTAL - CMakeLists.txt Generator
- tipi - ๐ฎ EXPERIMENTAL - Getting started with tipi CMakeLists generator
- tipi - Compile options
- tipi - Integrated Package Manager
- tipi - Running tests
- tipi - IDE Integration
๐ป Self-hosted runners
Rationale
Native development can often mean hardware specific tests or application execution, be it for a specific GPU, a custom MCU or special high performance network card.
Also it's common for teams to share a very powerful build server to be able to compile memory heavy C++ template code and even when using a remote compilation cloud one might still want to use these servers in an hybrid setup.
Support
cmake-re
support in this aspects 2 types of selfhosted runner specification :
- CMake RE L1 Digital Twins
- CMake RE L2 On-prem Workers
This page presents how to configure self-hosted runners for CMake RE L1 Digital Twins.
Self-hosted digital twins
In order to use your own runners self-hosted with cmake-re
you need to manage the lifetime of the runners yourself, CMake RE does this for you with environment that can be virtualized, containerized, self-hosted runners are not managed in this way.
Requirement: The self-hosted runner shall have an ssh-server and a
cmake-re
remote rpc server installed. The same procedure as Custom Environments Setup applies for selfhosted runner prerequisites.
Authorized SSH Keys
To launch the cmake-re
remote rpc server, cmake-re
needs to be authorized, in this regard you will find SSH public keys generated by cmake-re for each environment type in TIPI_HOME_DIR/.ssh/id_rsa_<environment-name>.pub
that you can authorize on your self-hosted digital twin.
selfhosted-runnner.json
The file specifying how to connect to the selfhosted runner has the following syntax :
{
"address": "tipi@<hostname>",
"port": 22,
"storage_server": "",
"machine_id": "<selfhosted-runner-id>"
}
The file can be passed to cmake-re
in 2 ways :
- Either By setting the environment variable
TIPI_SELFHOSTED_RUNNER
with the full path to yourselfhosted-runner.json
file - Or named
<toolchain-name>.json
stored aside the<toolchain-name>.cmake
to use for the selfhosted runner.
The second option is particularly useful to provide useful default dedicated runners for -DCMAKE_TOOLCHAIN_FILE=
toolchains (for example with custom hardware).
Found an error or want to add more info? Write an issue or contribute changes to this documentation at tipi-build/docs on