⚠️ Project not maintained (we no longer can keep up with the changes and validate them, feel free to fork it)
Automatic configuration for running GitHub Actions as a service
This module will setup all of the files and configuration needed for GitHub Actions runner to work on Debian (Stretch and Buster) and CentOS7 hosts.
This module supports configuration through hiera.
github_actions_runner::ensure: present github_actions_runner::base_dir_name: '/data/actions-runner' github_actions_runner::package_name: 'actions-runner-linux-x64' github_actions_runner::package_ensure: '2.277.1' github_actions_runner::repository_url: 'https://github.com/actions/runner/releases/download' github_actions_runner::org_name: 'my_github_organization' github_actions_runner::personal_access_token: 'PAT' github_actions_runner::user: 'root' github_actions_runner::group: 'root' github_actions_runner::instances: example_org_instance: labels: - self-hosted-custom
Note, your personal_access_token
has to contain the admin:org
permission.
github_actions_runner::instances: example_org_instance: labels: - self-hosted-custom1 example_repo_instance: repo_name: myrepo labels: - self-hosted-custom2
Note, your personal_access_token
has to contain the repo
permission.
github_actions_runner::instances: example_org_instance: ensure: absent labels: - self-hosted-custom1 example_repo_instance: org_name: overwritten_orgnization repo_name: myrepo labels: - self-hosted-custom2
github_actions_runner::http_proxy: http://proxy.local github_actions_runner::https_proxy: http://proxy.local github_actions_runner::instances: example_org_instance: http_proxy: http://instance_specific_proxy.local https_proxy: http://instance_specific_proxy.local no_proxy: example.com labels: - self-hosted-custom1
To use the module with Github Enterprise Server, you have to define these parameters:
github_actions_runner::github_domain: "https://git.example.com" github_actions_runner::github_api: "https://git.example.com/api/v3"
In addition to the runner configuration examples above, you can also configure runners on the enterprise level by setting a value for enterprise_name
, for example:
github_actions_runner::ensure: present github_actions_runner::base_dir_name: '/data/actions-runner' github_actions_runner::package_name: 'actions-runner-linux-x64' github_actions_runner::package_ensure: '2.277.1' github_actions_runner::repository_url: 'https://github.com/actions/runner/releases/download' github_actions_runner::enterprise_name: 'enterprise_name' github_actions_runner::personal_access_token: 'PAT' github_actions_runner::user: 'root' github_actions_runner::group: 'root' github_actions_runner::instances:
Note, your personal_access_token
has to contain the admin:enterprise
permission.
By default, puppet will not modify the values that the runner scripts create when the runner is set.
In case you need to use another value of paths in the environment variable PATH, you can define through hiera. For example:
- For all runners defined:
github_actions_runner::path: - /usr/local/bin - /usr/bin - /bin - /my/own/path
- For just a specific runner:
github_actions_runner::instances: example_org_instance: path: - /usr/local/bin - /usr/bin - /bin - /my/own/path labels: - self-hosted-custom
The runner uses environment variables to decide pre/post-run scripts: https://docs.github.com/en/actions/hosting-your-own-runners/running-scripts-before-or-after-a-job#triggering-the-scripts
github_actions_runner::env: ACTIONS_RUNNER_HOOK_JOB_STARTED: "/cleanup_script" FOO: "bar"
Tested on Debian 9 (stretch), Debian 10 (buster) and CentOS7 hosts. Full list of operating systems support and requirements are described in metadata.json
file.
There are a few guidelines that we need contributors to follow so that we can have a chance of keeping on top of things. For more information, see Puppet Forge module contribution guide.
GitHub Actions Runner is available under the Apache License, Version 2.0. See LICENSE file for more info.