self-hosted-runners
Recipe to install and configure a GitHub action runner using Ansible
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.3%) to scientific vocabulary
Keywords
Repository
Recipe to install and configure a GitHub action runner using Ansible
Basic Info
Statistics
- Stars: 19
- Watchers: 5
- Forks: 10
- Open Issues: 32
- Releases: 1
Topics
Metadata Files
README.md
Self-hosted runners
| Five recommendations for fair software from fair-software.nl | Badges |
| --- | --- |
| 1. Code repository | |
| 2. License |
|
| 3. Community registry |
|
| 4. Enable citation |
|
| 5. Checklist | N/A |
| Other best practices | |
| Markdown Link Checker|
|
How to set up GitHub Action runners on self-hosted infrastructure
This repository explains how to set up a server for running continuous integration tests on other hardware than what GitHub provides. This can be useful when the code you want to test has special requirements, for example if
- it needs a GPU to run (CUDA installation with ansible instructions)
- it needs multiple nodes
- testing requires data that needs to stay on-premises for privacy reasons or legal reasons
- testing requires data that is too big to move
- testing requires specific software
This guide distinguishes between the client and the server; the client is your own machine; the server is whichever machine runs the tests. For either side, we'll explain what configuration needs to be done. For people who just want to try out the instructions but don't have access to remote hardware, we included a few alternatives for running the server locally as well, through the use of virtualization (with VirtualBox) and containerization (with Docker).
For the client, we included instructions for Linux Ubuntu, Mac, and Windows; the server-side instructions all assume Linux Ubuntu.
| Status | Client OS | Server hardware | Runner | | --- | --- | --- | --- | | :heavycheckmark: Completed | Linux Ubuntu | local machine via Docker | link | | :heavycheckmark: Completed | Linux Ubuntu | local machine via Singularity | link | | :heavycheckmark: Completed | Linux Ubuntu | local machine via Vagrant | link | | :heavycheckmark: Completed | Linux Ubuntu | local machine via VirtualBox | link | | :heavycheckmark: Completed | Linux Ubuntu | remote machine at SURF HPC Cloud | link | | :hourglassflowingsand: WIP | Mac | local machine via Docker | - | | :hourglassflowingsand: WIP | Mac | local machine via Vagrant | - | | :hourglassflowingsand: WIP | Mac | local machine via VirtualBox | - | | :hourglassflowingsand: WIP | Mac | remote machine at SURF HPC Cloud | - | | :hourglassflowingsand: WIP | Windows | local machine via Docker | - | | :heavycheckmark: Completed | Windows | local machine via Vagrant | link | | :hourglassflowingsand: WIP | Windows | local machine via VirtualBox | - | | :heavycheckmark: Completed | Windows | remote machine at SURF HPC Cloud | link |
Security
A warning from GitHub for self-hosted runners in combination with public repositories is shown here. Please take this seriously. It basically means that the combination of a self-hosted runner and a public GitHub repository is unsafe. However, there was a recent discussion indicating that GitHub may add features to make this combination safe in the near future.
Documentation for developers
If you want to check if the links in your markdown work, install markdown-link-check
shell
npm install
then run
shell
find . -name '*.md' -not -path './node_modules/*' -exec markdown-link-check '{}' --config .mlc-config.json ';'
Owner
- Name: ci-for-research
- Login: ci-for-research
- Kind: organization
- Repositories: 3
- Profile: https://github.com/ci-for-research
Citation (CITATION.cff)
# YAML 1.2
---
abstract: "Various resources to set up GitHub Actions on self-hosted hardware."
authors:
-
affiliation: "Netherlands eScience Center"
family-names: Zapata
given-names: Felipe
orcid: "https://orcid.org/0000-0001-8286-677X"
-
affiliation: "Netherlands eScience Center"
family-names: Diblen
given-names: Faruk
orcid: "https://orcid.org/0000-0002-0989-929X"
-
affiliation: "Netherlands eScience Center"
family-names: Verhoeven
given-names: Stefan
orcid: "https://orcid.org/0000-0002-5821-2060"
-
affiliation: "Netherlands eScience Center"
family-names: Spaaks
given-names: Jurriaan H.
orcid: "https://orcid.org/0000-0002-7064-4069"
-
affiliation: "Netherlands eScience Center"
family-names: Meijer
given-names: Christiaan
orcid: "https://orcid.org/0000-0002-5529-5761"
-
affiliation: "Netherlands eScience Center"
family-names: Spreeuw
given-names: Hanno
orcid: "https://orcid.org/0000-0002-5057-0322"
-
affiliation: "Netherlands eScience Center"
family-names: Belloum
given-names: Adam
orcid: "https://orcid.org/0000-0001-6306-6937"
cff-version: "1.1.0"
doi: "10.5281/zenodo.3904265"
keywords:
- "Continuous Integration"
- "Github Actions"
- "self-hosted runners"
- "HPC"
- "GPU"
- "CI"
license: "Apache-2.0"
message: "If you use this software, please cite it using these metadata."
repository-code: "https://github.com/ci-for-research/self-hosted-runners"
title: "Self-hosted runners"
...
GitHub Events
Total
- Watch event: 1
- Pull request event: 1
Last Year
- Watch event: 1
- Pull request event: 1
Dependencies
- actions/checkout v2 composite
- ansible/ansible-lint-action master composite
- actions/checkout master composite
- gaurav-nelson/github-action-markdown-link-check v1 composite
- actions/checkout v2 composite
- docker://github/super-linter v3.2.0 composite
- ubuntu 18.04 build
- @types/color-name 1.1.1 development
- ajv 6.12.2 development
- ansi-styles 4.2.1 development
- asn1 0.2.4 development
- assert-plus 1.0.0 development
- async 3.2.0 development
- asynckit 0.4.0 development
- aws-sign2 0.7.0 development
- aws4 1.10.0 development
- bcrypt-pbkdf 1.0.2 development
- caseless 0.12.0 development
- chalk 4.1.0 development
- color-convert 2.0.1 development
- color-name 1.1.4 development
- combined-stream 1.0.8 development
- commander 5.1.0 development
- core-util-is 1.0.2 development
- dashdash 1.14.1 development
- delayed-stream 1.0.0 development
- ecc-jsbn 0.1.2 development
- extend 3.0.2 development
- extsprintf 1.3.0 development
- fast-deep-equal 3.1.3 development
- fast-json-stable-stringify 2.1.0 development
- forever-agent 0.6.1 development
- form-data 2.3.3 development
- getpass 0.1.7 development
- har-schema 2.0.0 development
- har-validator 5.1.3 development
- has-flag 4.0.0 development
- http-signature 1.2.0 development
- is-absolute-url 3.0.3 development
- is-relative-url 3.0.0 development
- is-typedarray 1.0.0 development
- isemail 3.2.0 development
- isstream 0.1.2 development
- jsbn 0.1.1 development
- json-schema 0.2.3 development
- json-schema-traverse 0.4.1 development
- json-stringify-safe 5.0.1 development
- jsprim 1.4.1 development
- link-check 4.5.0 development
- lodash 4.17.19 development
- markdown-link-check 3.8.1 development
- markdown-link-extractor 1.2.3 development
- marked 0.8.2 development
- mime-db 1.44.0 development
- mime-types 2.1.27 development
- ms 2.1.2 development
- oauth-sign 0.9.0 development
- performance-now 2.1.0 development
- progress 2.0.3 development
- psl 1.8.0 development
- punycode 2.1.1 development
- qs 6.5.2 development
- request 2.88.2 development
- safe-buffer 5.2.1 development
- safer-buffer 2.1.2 development
- sshpk 1.16.1 development
- supports-color 7.1.0 development
- tough-cookie 2.5.0 development
- tunnel-agent 0.6.0 development
- tweetnacl 0.14.5 development
- uri-js 4.2.2 development
- uuid 3.4.0 development
- verror 1.10.0 development
- markdown-link-check ^3.8.1 development