Top Related Projects
Run your GitHub Actions locally 🚀
Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton
Concourse is a container-based continuous thing-doer written in Go.
Gitness is an Open Source developer platform with Source Control management, Continuous Integration and Continuous Delivery.
Workflow Engine for Kubernetes
Quick Overview
The actions/runner repository is the core component of GitHub Actions, providing the runner application that executes jobs in GitHub Actions workflows. It allows users to set up self-hosted runners, enabling the execution of GitHub Actions workflows on their own infrastructure.
Pros
- Enables running GitHub Actions workflows on custom infrastructure
- Supports multiple operating systems (Windows, Linux, macOS)
- Allows for fine-grained control over the execution environment
- Integrates seamlessly with GitHub's ecosystem
Cons
- Requires maintenance and management of self-hosted infrastructure
- May introduce security risks if not properly configured
- Limited scalability compared to GitHub-hosted runners
- Potential for increased costs depending on infrastructure choices
Getting Started
To set up a self-hosted runner:
- Go to your GitHub repository or organization settings.
- Navigate to "Actions" > "Runners" > "New self-hosted runner".
- Choose your operating system and architecture.
- Follow the provided instructions to download, configure, and start the runner.
Example configuration script for Linux:
# Create a folder
mkdir actions-runner && cd actions-runner
# Download the latest runner package
curl -o actions-runner-linux-x64-2.303.0.tar.gz -L https://github.com/actions/runner/releases/download/v2.303.0/actions-runner-linux-x64-2.303.0.tar.gz
# Extract the installer
tar xzf ./actions-runner-linux-x64-2.303.0.tar.gz
# Create the runner and start the configuration experience
./config.sh --url https://github.com/[YOUR_ORGANIZATION]/[YOUR_REPOSITORY] --token [YOUR_TOKEN]
# Run it!
./run.sh
Replace [YOUR_ORGANIZATION]
, [YOUR_REPOSITORY]
, and [YOUR_TOKEN]
with your specific values provided by GitHub.
Competitor Comparisons
Run your GitHub Actions locally 🚀
Pros of act
- Allows local testing of GitHub Actions workflows without pushing to a remote repository
- Faster iteration and debugging of workflows
- Supports running workflows in Docker containers, simulating different environments
Cons of act
- May not perfectly replicate GitHub's runner environment
- Limited support for certain GitHub Actions features and secrets management
- Requires Docker to be installed and running on the local machine
Code comparison
runner:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm ci
- run: npm test
act:
act -j build
The runner code snippet shows a typical GitHub Actions workflow, while the act command demonstrates how to run a specific job locally using act.
Key differences
- Runner is the official GitHub Actions runner, while act is a third-party tool for local testing
- Runner executes workflows on GitHub's infrastructure, act runs them locally
- Runner supports the full range of GitHub Actions features, while act has some limitations
- Runner requires pushing changes to trigger workflows, act allows immediate local execution
Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton
Pros of jx
- Provides a complete CI/CD solution for Kubernetes environments
- Offers automated GitOps workflows and environment promotion
- Includes built-in support for cloud-native tools and practices
Cons of jx
- Steeper learning curve due to its comprehensive feature set
- Requires Kubernetes knowledge and infrastructure
- May be overkill for smaller projects or teams not using Kubernetes
Code Comparison
jx (Pipeline example):
pipeline:
agent:
image: golang:1.16
stages:
- name: Build
steps:
- sh: go build
- name: Test
steps:
- sh: go test ./...
runner (Workflow example):
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
with:
go-version: '1.16'
- run: go build
- run: go test ./...
Summary
jx is a comprehensive CI/CD solution for Kubernetes environments, offering advanced features like GitOps workflows and environment promotion. It's well-suited for teams working with cloud-native technologies but may be complex for smaller projects. runner, on the other hand, is more lightweight and easier to set up, making it suitable for a wider range of projects, but lacks some of the advanced Kubernetes-specific features of jx.
Concourse is a container-based continuous thing-doer written in Go.
Pros of Concourse
- More flexible and customizable pipeline configurations
- Better support for complex workflows and dependencies
- Stronger isolation between jobs and resources
Cons of Concourse
- Steeper learning curve and more complex setup
- Less integrated with GitHub ecosystem
- Requires more infrastructure management
Code Comparison
Runner (workflow example):
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm ci
- run: npm test
Concourse (pipeline example):
jobs:
- name: build
plan:
- get: repo
- task: run-tests
config:
platform: linux
image_resource:
type: docker-image
source: {repository: node}
inputs:
- name: repo
run:
path: sh
args:
- -exc
- |
cd repo
npm ci
npm test
The Runner example is more concise and easier to read, while the Concourse example offers more granular control over the execution environment and steps. Concourse's pipeline configuration allows for more complex workflows and resource management, but requires more verbose syntax.
Gitness is an Open Source developer platform with Source Control management, Continuous Integration and Continuous Delivery.
Pros of Gitness
- Offers a more comprehensive Git platform with built-in CI/CD capabilities
- Provides a self-hosted option for better control over data and infrastructure
- Includes advanced features like code review and project management tools
Cons of Gitness
- Less mature and potentially less stable than Runner
- Smaller community and ecosystem compared to GitHub Actions
- May require more setup and maintenance for self-hosted deployments
Code Comparison
Runner:
steps:
- uses: actions/checkout@v2
- name: Run a one-line script
run: echo Hello, world!
Gitness:
pipeline:
- step:
name: Run a one-line script
script:
- echo Hello, world!
Both repositories provide CI/CD functionality, but Gitness aims to be a more complete Git platform. Runner is focused solely on executing GitHub Actions workflows, while Gitness offers a broader set of features. Runner benefits from GitHub's extensive ecosystem and widespread adoption, whereas Gitness provides more control and flexibility for organizations looking to self-host their entire Git infrastructure.
Workflow Engine for Kubernetes
Pros of Argo Workflows
- Designed for complex, multi-step workflows with dependencies
- Native Kubernetes integration for scalability and resource management
- Supports artifact passing between workflow steps
Cons of Argo Workflows
- Steeper learning curve due to Kubernetes-specific concepts
- Requires a Kubernetes cluster to run
- Less integrated with source control platforms compared to GitHub Actions
Code Comparison
Argo Workflows (workflow definition):
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: hello-world
spec:
entrypoint: whalesay
templates:
- name: whalesay
container:
image: docker/whalesay
command: [cowsay]
args: ["hello world"]
GitHub Actions (workflow definition):
name: Hello World
on: [push]
jobs:
say-hello:
runs-on: ubuntu-latest
steps:
- run: echo "Hello World"
Argo Workflows is better suited for complex, Kubernetes-native workflows, while GitHub Actions excels in simplicity and tight integration with GitHub repositories. Argo Workflows offers more flexibility in defining dependencies and passing data between steps, but requires more setup and Kubernetes knowledge. GitHub Actions is easier to get started with and works seamlessly with GitHub, but may be less powerful for intricate, multi-step processes.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
GitHub Actions Runner
The runner is the application that runs a job from a GitHub Actions workflow. It is used by GitHub Actions in the hosted virtual environments, or you can self-host the runner in your own environment.
Get Started
For more information about installing and using self-hosted runners, see Adding self-hosted runners and Using self-hosted runners in a workflow
Runner releases:
Contribute
We accept contributions in the form of issues and pull requests. The runner typically requires changes across the entire system and we aim for issues in the runner to be entirely self contained and fixable here. Therefore, we will primarily handle bug issues opened in this repo and we kindly request you to create all feature and enhancement requests on the GitHub Feedback page. Read more about our guidelines here before contributing.
Top Related Projects
Run your GitHub Actions locally 🚀
Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton
Concourse is a container-based continuous thing-doer written in Go.
Gitness is an Open Source developer platform with Source Control management, Continuous Integration and Continuous Delivery.
Workflow Engine for Kubernetes
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot