All Projects → ChristopherHX → github-act-runner

ChristopherHX / github-act-runner

Licence: MIT License
act as self-hosted runner

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to github-act-runner

qodana-action
⚙️ Scan your Java, Kotlin, PHP, Python, JavaScript, TypeScript projects at GitHub with Qodana
Stars: ✭ 112 (+64.71%)
Mutual labels:  continuous-integration, ci, actions, github-actions
changed-files
Github action to retrieve all (added, copied, modified, deleted, renamed, type changed, unmerged, unknown) files and directories.
Stars: ✭ 733 (+977.94%)
Mutual labels:  continuous-integration, ci, actions, github-actions
Android-CICD
This repo demonstrates how to work on CI/CD for Mobile Apps 📱 using Github Actions 💊 + Firebase Distribution 🎉
Stars: ✭ 37 (-45.59%)
Mutual labels:  continuous-integration, ci, actions, github-actions
xray-action
... a GitHub action to import test results into "Xray" - A complete Test Management tool for Jira.
Stars: ✭ 16 (-76.47%)
Mutual labels:  continuous-integration, ci, actions, github-actions
overview
Automate your workflows with GitHub actions for MATLAB.
Stars: ✭ 40 (-41.18%)
Mutual labels:  continuous-integration, ci, actions, github-actions
Cml
♾️ CML - Continuous Machine Learning | CI/CD for ML
Stars: ✭ 2,843 (+4080.88%)
Mutual labels:  continuous-integration, ci, github-actions
Php Censor
PHP Censor is an open source self-hosted continuous integration server for PHP projects.
Stars: ✭ 619 (+810.29%)
Mutual labels:  continuous-integration, ci, self-hosted
actions
Set of actions for implementing CI/CD with werf and GitHub Actions
Stars: ✭ 67 (-1.47%)
Mutual labels:  continuous-integration, actions, github-actions
prettier
🔨 Native, blazingly-fast Prettier CLI on Github Actions
Stars: ✭ 19 (-72.06%)
Mutual labels:  continuous-integration, ci, github-actions
link-snitch
GitHub Action to scan your site for broken links so you can fix them 🔗
Stars: ✭ 50 (-26.47%)
Mutual labels:  continuous-integration, actions, github-actions
github-create-release-action
Create a GitHub release from a Tag
Stars: ✭ 33 (-51.47%)
Mutual labels:  continuous-integration, ci, actions
action-junit-report
Reports junit test results as GitHub Pull Request Check
Stars: ✭ 103 (+51.47%)
Mutual labels:  ci, actions, github-actions
release-helper
🤖 A GitHub Action that help you publish release.
Stars: ✭ 27 (-60.29%)
Mutual labels:  ci, actions, github-actions
branch-protection-bot
A bot tool to disable and re-enable "Include administrators" option in branch protection
Stars: ✭ 57 (-16.18%)
Mutual labels:  ci, actions, github-actions
setup-scheme
Github Actions CI / CD setup for Scheme
Stars: ✭ 13 (-80.88%)
Mutual labels:  continuous-integration, ci, github-actions
arduino-lint-action
GitHub Actions action to check Arduino projects for problems
Stars: ✭ 20 (-70.59%)
Mutual labels:  continuous-integration, ci, github-actions
drupal9ci
One-line installers for implementing Continuous Integration in Drupal 9
Stars: ✭ 137 (+101.47%)
Mutual labels:  continuous-integration, github-actions
k6-example-github-actions
No description or website provided.
Stars: ✭ 18 (-73.53%)
Mutual labels:  continuous-integration, actions
ci-notice
😱 Notify you when CI fails.
Stars: ✭ 25 (-63.24%)
Mutual labels:  ci, github-actions
megalinter
🦙 Mega-Linter analyzes 48 languages, 22 formats, 19 tooling formats, excessive copy-pastes, spelling mistakes and security issues in your repository sources with a GitHub Action, other CI tools or locally.
Stars: ✭ 534 (+685.29%)
Mutual labels:  ci, github-actions

github-act-runner

CI awesome-runners

A reverse engineered github actions compatible self-hosted runner using nektos/act to execute your workflow steps. Unlike the official actions/runner, this works on more systems like freebsd.

Usage

Dependencies

Actions Type Host JobContainer (only Linux, Windows, macOS or Openbsd)
(composite) run steps bash or explicit shell in your PATH (prior running the runner) Docker (*1), bash or explicit shell in your PATH (inside your container image)
nodejs actions node (*2) in your PATH (prior running the runner) Docker (*1), node (*2) in your PATH (inside your container image)
docker actions Not available Docker (*1)
service container Not available Not available
composite actions with uses v0.1.0 v0.1.0
composite actions with if v0.1.0 v0.1.0
composite actions with continue-on-error v0.1.0 v0.1.0

Docker Daemon via DOCKER_HOST

(*1) Reachable docker daemon use DOCKER_HOST to specify a remote host.

NodeJS via PATH

(*2) For best compatibility with existing nodejs actions, please add nodejs in version 12 to your PATH, newer nodejs versions might lead to workflow failures.

Usage for github releases

Follow the instruction of https://github.com/ChristopherHX/github-act-runner/releases/latest.

Usage for debian repository

Add debian repository

/etc/apt/sources.list.d/github-act-runner.list file:

deb http://gagis.hopto.org/repo/chrishx/deb all main

Import repository public key

curl -sS http://gagis.hopto.org/repo/chrishx/pubkey.gpg | sudo tee -a /etc/apt/trusted.gpg.d/chrishx-github-act-runner.asc

Install the runner

sudo apt update
sudo apt install github-act-runner

Add new runner

github-act-runner new --url <url> --name <runner-name> --labels <labels> --token <runner-registration-token>

where

  • <url> - github repository (e.g. https://github.com/user/repo), organization (e.g. https://github.com/organization) or enterprise URL
  • <runner-name> - choose a name for your runner
  • <labels> - comma-separated list of labels, e.g. label1,label2. Optional.
  • <runner-registration-token>

The new runner will be registered and started as background service.

See help:

github-act-runner --help

For more info about managing runners.

Usage from source

You need at least go 1.16 to use this runner from source. Some targets fail to build with go 1.17.

Getting Source

git clone https://github.com/ChristopherHX/github-act-runner.git --recursive

Update Source

git pull
git submodule update

Configure

go run . configure --url <github-repo-or-org-or-enterprise> --name <name of this runner> -l label1,label2 --token <runner registration token>

<github-repo-or-org-or-enterprise>

E.g. https://github.com/ChristopherHX/github-act-runner for this repo

<name of this runner>

E.g. Test

<runner registration token>

You find the token in
Repository <github-repo>/settings/actions/runners/new
Organization <github-url>/organizations/<github-org-name>/settings/actions/runners/new
Enterprise In action runner settings of your enterprise

E.g. AWWWWWWWWWWWWWAWWWWWWAWWWWWWW

Labels

Replace label1,label2 with a custom list of runner labels.

Run

go run . run

Known Limitations

How does it work?

This runner implements the same protocol as the actions/runner in a different way, as such it can be used as a self-hosted runner exactly like the official one. To get this working, I initially built an actions service replacement ChristopherHX/runner.server for the official actions/runner. My own actions service allowed me to implement the base protocol for this runner and debug how the protocol is serializeing and parsing json messages, while still being incompatible with github. After testing against github, the first thing happend was loosing the ability to run any github action workflows on my test repository. My invalid attempts to register a custom runner caused unrecoverable Internal Server Errors on githubs side, I decided to delete this test repository. After some work everything worked and finally it is safe to register this runner against github. To execute steps this runner translates the github actions job request to be compatible with a modified version of nektos/act ( ChristopherHX/act ), which adds a local task runner without the need for docker and increased platform support, also the log output of act gets redirected to github for live logs and storing log files.

Does this runner work without github?

Yes, you can use this runner together with ChristopherHX/runner.server locally on your PC without depending on compatibility with github. Also CI tests for this runner are using ChristopherHX/runner.server, this avoids requiring a PAT for github to run tests and enshures that you are always able to run it locally without github.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].