Convert Figma logo to code with AI

actions logorunner

The Runner for GitHub Actions :rocket:

4,759
927
4,759
463

Top Related Projects

54,581

Run your GitHub Actions locally 🚀

4,576

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.

32,102

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:

  1. Go to your GitHub repository or organization settings.
  2. Navigate to "Actions" > "Runners" > "New self-hosted runner".
  3. Choose your operating system and architecture.
  4. 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

54,581

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
4,576

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.

32,102

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

GitHub Actions Runner

Actions Status

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:

win Pre-reqs | Download

macOS Pre-reqs | Download

linux Pre-reqs | Download

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.