self-hosted-runners

Recipe to install and configure a GitHub action runner using Ansible

https://github.com/ci-for-research/self-hosted-runners

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

continuous-integration github-actions
Last synced: 4 months ago · JSON representation ·

Repository

Recipe to install and configure a GitHub action runner using Ansible

Basic Info
  • Host: GitHub
  • Owner: ci-for-research
  • License: apache-2.0
  • Language: Shell
  • Default Branch: master
  • Homepage:
  • Size: 904 KB
Statistics
  • Stars: 19
  • Watchers: 5
  • Forks: 10
  • Open Issues: 32
  • Releases: 1
Topics
continuous-integration github-actions
Created about 6 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Zenodo

README.md

Self-hosted runners

| Five recommendations for fair software from fair-software.nl | Badges | | --- | --- | | 1. Code repository | GitHub badge | | 2. License | License badge | | 3. Community registry | Ansible Galaxy badge Research Software Directory | | 4. Enable citation | DOI | | 5. Checklist | N/A | | Other best practices | | | Markdown Link Checker| Check Markdown links |

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

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

.github/workflows/ansible-lint.yml actions
  • actions/checkout v2 composite
  • ansible/ansible-lint-action master composite
.github/workflows/markdown-link-checker.yml actions
  • actions/checkout master composite
  • gaurav-nelson/github-action-markdown-link-check v1 composite
.github/workflows/super-linter.yml actions
  • actions/checkout v2 composite
  • docker://github/super-linter v3.2.0 composite
ubuntu-docker/Dockerfile docker
  • ubuntu 18.04 build
package-lock.json npm
  • @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
package.json npm
  • markdown-link-check ^3.8.1 development