Skip to content

Feature: Runner registration options #3220

@mattboston

Description

@mattboston

Related to

Configuration

Impact

must have for enterprise usage

Missing Feature

When registering a runner via the CLI in semaphoreui, there are currently no options to configure key runner attributes at registration time. This makes it difficult to ensure that runners are set up with the correct context and metadata without additional manual edits in the GUI afterward.

It would be highly valuable to have CLI options, config file settings, or sensible defaults that allow users to specify:

  • Runner hostname – so that runners can be uniquely identified.
  • Enable/disable state – to control whether a runner should immediately accept jobs.
  • Project name – to associate the runner with the correct project.
  • Webhook – to register any required integration hooks at startup.
  • Tags – to properly categorize and filter runners for specific jobs.

This feature would streamline runner setup, improve automation workflows, and reduce manual configuration overhead.

Implementation

The CLI registration command should be extended to accept new optional flags or read from a config file if provided. For example:

semaphore-runner register \
  --config /path/to/your/config/file.json \
  --hostname my-runner-01 \
  --enabled true \
  --project-name my-project \
  --webhook https://example.com/hook \
  --tags linux,aws,build

echo REGISTRATION_TOKEN | semaphore-runner register \
  --stdin-registration-token \
  --config /path/to/your/config/file.json
  --hostname my-runner-01 \
  --enabled true \
  --project-name my-project \
  --webhook https://example.com/hook \
  --tags linux,aws,build

Behavior suggestions:

  • Flags should override config file values if both are provided.
  • Default values should be used when neither flags nor config are set (e.g., enabled = true by default).
  • The --disable flag could provide an explicit way to prevent runners from auto-starting.
  • Tags should accept a comma-separated list for flexibility.

This approach would make runner registration more declarative, reduce post-setup adjustments, and support both automated and manual workflows.

Design

No response

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions