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.