traderepublic / Cilicon

🛠️ Self-Hosted ephemeral macOS CI on Apple Silicon
MIT License
950 stars 28 forks source link

GitLab Runner Advanced Configuration #36

Closed ast3150 closed 9 months ago

ast3150 commented 10 months ago

Add support for passing an advanced config to GitLab Runner provisioner

Motivation

Some features of the GitLab Runner are only available through an advanced config. Critically, this includes external runner caches. This is a desirable feature because it can vastly improve the build times for ephemeral build runners.

Solution

Introduce a new config parameter configToml in cilicon.yml, an optional multi-line argument. Users can pass any custom runner configuration here, including a cache configuration.

Change the runner command from gitlab-runner run-single to gitlab-runner run. This is required because run-single does not take a configuration file. Consequently, the configuration parameters are passed via the config.toml file to the runner, instead of being passed as parameters to the shell command.

ast3150 commented 10 months ago

This is currently a WIP on our internal fork, expect a PR soon