Convert Figma logo to code with AI

actions logorunner

The Runner for GitHub Actions :rocket:

4,964
976
4,964
497

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,319

Harness Open Source is an end-to-end developer platform with Source Control Management, CI/CD Pipelines, Hosted Developer Environments, and Artifact Registries.

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,319

Harness Open Source is an end-to-end developer platform with Source Control Management, CI/CD Pipelines, Hosted Developer Environments, and Artifact Registries.

Pros of Harness

  • Offers a more comprehensive CI/CD platform with additional features like deployment management and feature flags
  • Provides a user-friendly GUI for pipeline configuration and management
  • Supports multi-cloud and hybrid deployments out of the box

Cons of Harness

  • Steeper learning curve due to more complex feature set
  • Potentially higher costs for larger teams or projects
  • Less tightly integrated with GitHub ecosystem

Code Comparison

Runner:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: npm ci
      - run: npm test

Harness:

pipeline:
  stages:
    - stage:
        name: Build and Test
        steps:
          - step:
              type: Run
              name: Install Dependencies
              command: npm ci
          - step:
              type: Run
              name: Run Tests
              command: npm test

Both repositories provide CI/CD capabilities, but Runner is more focused on GitHub-specific workflows, while Harness offers a broader set of features for various deployment scenarios. Runner is generally easier to set up for GitHub projects, while Harness provides more flexibility for complex, multi-cloud deployments.

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.