GitCaddy 9de33d4252
Some checks failed
CI / build-and-test (push) Failing after 8s
Send runner capabilities with FetchTask poll
- Add envcheck import and capability detection to poller.go
- Send capabilities JSON with every FetchTask request
- Use GitCaddy actions-proto-go v0.5.6 with CapabilitiesJson field
2026-01-11 07:03:54 +00:00
2023-03-18 01:58:21 -04:00
2023-02-28 23:39:30 +08:00
2022-11-24 15:36:16 +08:00
2023-04-04 21:32:04 +08:00
2023-11-23 20:41:10 +00:00

GitCaddy Act Runner

A Gitea Actions runner with enhanced capability detection and reporting for AI-friendly workflow generation.

This is a GitCaddy fork of gitea.com/gitea/act_runner with runner capability discovery features.

Overview

Act Runner executes Gitea Actions workflows using act. This fork adds automatic capability detection, enabling Gitea to expose runner capabilities via API for AI tools to query before generating workflows.

Key Features

  • Capability Detection: Automatically detects OS, architecture, Docker support, available shells, and installed tools
  • Capability Reporting: Reports capabilities to Gitea server during runner declaration
  • Full Compatibility: Drop-in replacement for standard act_runner
  • Multi-Platform: Supports Linux, macOS, and Windows

Installation

Download Pre-built Binary

Download from Releases:

# Linux (amd64)
curl -L -o act_runner https://git.marketally.com/gitcaddy/act_runner/releases/download/v0.3.1-gitcaddy/act_runner-linux-amd64
chmod +x act_runner

# macOS (Apple Silicon)
curl -L -o act_runner https://git.marketally.com/gitcaddy/act_runner/releases/download/v0.3.1-gitcaddy/act_runner-darwin-arm64
chmod +x act_runner

Build from Source

git clone https://git.marketally.com/gitcaddy/act_runner.git
cd act_runner
make build

Quick Start

1. Enable Actions in Gitea

Add to your Gitea app.ini:

[actions]
ENABLED = true

2. Register the Runner

./act_runner register \
  --instance https://your-gitea-instance.com \
  --token YOUR_RUNNER_TOKEN \
  --name my-runner \
  --labels ubuntu-latest,docker

3. Start the Runner

./act_runner daemon

On startup, the runner will:

  1. Detect system capabilities (OS, arch, Docker, shells, tools)
  2. Report capabilities to Gitea via the Declare API
  3. Begin polling for jobs

Capability Detection

The runner automatically detects:

Category Examples
OS/Arch linux/amd64, darwin/arm64, windows/amd64
Container Runtime Docker, Podman
Shells bash, sh, zsh, powershell, cmd
Tools Node.js, Go, Python, Java, .NET, Rust
Features Cache support, Docker Compose

Example Capabilities JSON

{
  "os": "linux",
  "arch": "amd64",
  "docker": true,
  "docker_compose": true,
  "container_runtime": "docker",
  "shell": ["bash", "sh"],
  "tools": {
    "node": ["18.19.0"],
    "go": ["1.21.5"],
    "python": ["3.11.6"]
  },
  "features": {
    "cache": true,
    "docker_services": true
  },
  "limitations": []
}

Configuration

Create a config file or use command-line flags:

./act_runner generate-config > config.yaml
./act_runner -c config.yaml daemon

Example configuration:

log:
  level: info

runner:
  file: .runner
  capacity: 1
  timeout: 3h
  labels:
    - ubuntu-latest:docker://node:18-bullseye
    - ubuntu-22.04:docker://ubuntu:22.04

container:
  docker_host: ""
  force_pull: false
  privileged: false

cache:
  enabled: true
  dir: ~/.cache/actcache

Docker Deployment

docker run -d \
  --name act_runner \
  -e GITEA_INSTANCE_URL=https://your-gitea.com \
  -e GITEA_RUNNER_REGISTRATION_TOKEN=<token> \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v ./data:/data \
  gitcaddy/act_runner:latest

GitCaddy Integration

This runner is designed to work with the GitCaddy Gitea fork, which provides:

  • Runner Capabilities API (/api/v2/repos/{owner}/{repo}/actions/runners/capabilities)
  • Workflow Validation API for pre-flight checks
  • Action Compatibility Database for GitHub Actions mapping

How It Works


  act_runner                      Gitea                    AI Tool
      |                             |                         |
      |  Declare + Capabilities     |                         |
      |---------------------------->|                         |
      |                             |                         |
      |                             |  GET /api/v2/.../caps   |
      |                             |<------------------------|
      |                             |                         |
      |                             |  Runner capabilities    |
      |                             |------------------------>|
      |                             |                         |
      |                             |     Generates workflow  |
      |                             |     with correct config |

Project Description
gitcaddy/gitea Gitea with AI-friendly enhancements
gitcaddy/actions-proto-go Protocol definitions with capability support

Upstream

This project is a fork of gitea.com/gitea/act_runner. We contribute enhancements back to upstream where appropriate.

License

MIT License - see LICENSE for details.

Description
GitCaddy fork of act_runner with capability reporting for AI-friendly workflow generation
Readme MIT 796 KiB
2026-01-11 19:30:10 +00:00
Languages
Go 92.7%
Makefile 4.5%
Shell 1.8%
Dockerfile 1%