11 Commits

Author SHA1 Message Date
volker.raschek 634a707ad1 fix(defaults): adapt config file path
Lint Markdown files / markdown-lint (push) Failing after 2s
Ansible Linter / ansible-lint (push) Successful in 1m1s
Release Ansible Role / Release Ansible Role (push) Successful in 3m26s
2026-06-11 21:17:20 +02:00
volker.raschek 097e24cd4a style(default): remove obsolete newline
Ansible Linter / ansible-lint (push) Successful in 1m1s
Lint Markdown files / markdown-lint (push) Failing after 12s
2026-06-11 20:03:31 +02:00
volker.raschek 09989839e6 fix: extend default config
Ansible Linter / ansible-lint (push) Successful in 1m0s
Lint Markdown files / markdown-lint (push) Failing after 11s
2026-06-11 20:02:12 +02:00
volker.raschek 199d8219db fix: execute as user gitea-runner
Ansible Linter / ansible-lint (push) Successful in 3m25s
Lint Markdown files / markdown-lint (push) Successful in 13s
Release Ansible Role / Release Ansible Role (push) Successful in 3m21s
2026-06-11 18:40:01 +02:00
volker.raschek 3fd470fe3b fix: append unix user to additional groups
Ansible Linter / ansible-lint (push) Successful in 25s
Lint Markdown files / markdown-lint (push) Successful in 52s
Release Ansible Role / Release Ansible Role (push) Successful in 1m27s
2026-06-11 17:20:55 +02:00
CSRBot c6308901df Merge pull request 'chore(deps): update davidanson/markdownlint-cli2-action action to v23' (#5) from renovate/davidanson-markdownlint-cli2-action-23.x into master
Ansible Linter / ansible-lint (push) Successful in 27s
Lint Markdown files / markdown-lint (push) Successful in 7s
2026-06-11 03:01:46 +00:00
CSRBot 8c50c4bafb chore(deps): update davidanson/markdownlint-cli2-action action to v23
Ansible Linter / ansible-lint (push) Successful in 23s
Lint Markdown files / markdown-lint (push) Successful in 6s
Ansible Linter / ansible-lint (pull_request) Successful in 24s
Lint Markdown files / markdown-lint (pull_request) Successful in 7s
2026-06-11 00:01:56 +00:00
CSRBot e350f6781e Merge pull request 'chore(deps): update actions/checkout action to v6.0.3' (#2) from renovate/actions-checkout-6.x into master
Ansible Linter / ansible-lint (push) Successful in 23s
Lint Markdown files / markdown-lint (push) Successful in 5s
2026-06-10 21:02:25 +00:00
CSRBot a8b07f7397 chore(deps): update actions/checkout action to v6.0.3
Ansible Linter / ansible-lint (push) Successful in 28s
Ansible Linter / ansible-lint (pull_request) Successful in 27s
Lint Markdown files / markdown-lint (push) Successful in 8s
Lint Markdown files / markdown-lint (pull_request) Successful in 8s
2026-06-10 21:02:09 +00:00
volker.raschek f080f7d339 fix: adapt config paths
Ansible Linter / ansible-lint (push) Successful in 27s
Lint Markdown files / markdown-lint (push) Successful in 7s
Release Ansible Role / Release Ansible Role (push) Successful in 1m23s
2026-06-10 22:28:08 +02:00
volker.raschek 56e01bd192 fix(npm): adapt package name and homepage
Ansible Linter / ansible-lint (push) Successful in 29s
Lint Markdown files / markdown-lint (push) Successful in 7s
2026-06-10 22:15:55 +02:00
8 changed files with 108 additions and 54 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ jobs:
ansible-lint: ansible-lint:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- name: Run ansible-lint - name: Run ansible-lint
uses: ansible/ansible-lint@v25.12.2 uses: ansible/ansible-lint@v25.12.2
with: with:
+2 -2
View File
@@ -12,7 +12,7 @@ jobs:
runs-on: runs-on:
- ubuntu-latest - ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.1 - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: DavidAnson/markdownlint-cli2-action@v21.0.0 - uses: DavidAnson/markdownlint-cli2-action@ded1f9488f68a970bc66ea5619e13e9b52e601cd # v23.2.0
with: with:
globs: '**/*.md' globs: '**/*.md'
+15 -1
View File
@@ -65,7 +65,7 @@ Found roles matching your search:
### Act Runner ### Act Runner
| Name | Description | Value | | Name | Description | Value |
| ---------------------------------------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `gitea_runner_config_file` | Path to the gitea_runner configuration file | `/etc/gitea_runner/config.yaml` | | `gitea_runner_config_file` | Path to the gitea_runner configuration file | `/etc/gitea_runner/config.yaml` |
| `gitea_runner_config.log.level` | The level of logging, can be trace, debug, info, warn, error, fatal | `info` | | `gitea_runner_config.log.level` | The level of logging, can be trace, debug, info, warn, error, fatal | `info` |
| `gitea_runner_config.runner.file` | Where to store the registration result | `.runner` | | `gitea_runner_config.runner.file` | Where to store the registration result | `.runner` |
@@ -77,13 +77,23 @@ Found roles matching your search:
| `gitea_runner_config.runner.insecure` | Whether skip verifying the TLS certificate of the Gitea instance | `false` | | `gitea_runner_config.runner.insecure` | Whether skip verifying the TLS certificate of the Gitea instance | `false` |
| `gitea_runner_config.runner.fetch_timeout` | The timeout for fetching the job from the Gitea instance | `5s` | | `gitea_runner_config.runner.fetch_timeout` | The timeout for fetching the job from the Gitea instance | `5s` |
| `gitea_runner_config.runner.fetch_interval` | The interval for fetching the job from the Gitea instance | `2s` | | `gitea_runner_config.runner.fetch_interval` | The interval for fetching the job from the Gitea instance | `2s` |
| `gitea_runner_config.runner.fetch_interval_max` | The maximum interval for fetching the job from the Gitea instance. | `5s` |
| `gitea_runner_config.runner.workdir_cleanup_age` | The maximum interval for fetching the job from the Gitea instance. | `24h` |
| `gitea_runner_config.runner.idle_cleanup_interval` | Cadence for the idle stale bind-workdir cleanup pass. | `10m` |
| `gitea_runner_config.runner.log_report_interval` | The base interval for periodic log flush to the Gitea instance. | `5s` |
| `gitea_runner_config.runner.log_report_max_latency` | The maximum time a log row can wait before being sent. | `3s` |
| `gitea_runner_config.runner.log_report_batch_size` | Flush logs immediately when the buffer reaches this many rows. | `100` |
| `gitea_runner_config.runner.state_report_interval` | The interval for reporting task state (step status, timing) to the Gitea instance. | `5s` |
| `gitea_runner_config.runner.github_mirror` | The mirror address of the github that pulls the action repository | `""` | | `gitea_runner_config.runner.github_mirror` | The mirror address of the github that pulls the action repository | `""` |
| `gitea_runner_config.runner.labels` | The labels of a runner are used to determine which jobs the runner can run | `["ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest","ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04","ubuntu-20.04:docker://docker.gitea.com/runner-images:ubuntu-20.04"]` | | `gitea_runner_config.runner.labels` | The labels of a runner are used to determine which jobs the runner can run | `["ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest","ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04","ubuntu-20.04:docker://docker.gitea.com/runner-images:ubuntu-20.04"]` |
| `gitea_runner_config.runner.allocate_pty` | TODO | `false` |
| `gitea_runner_config.cache.enabled` | Enable cache server to use actions/cache | `true` | | `gitea_runner_config.cache.enabled` | Enable cache server to use actions/cache | `true` |
| `gitea_runner_config.cache.dir` | The directory to store the cache data | `""` | | `gitea_runner_config.cache.dir` | The directory to store the cache data | `""` |
| `gitea_runner_config.cache.host` | The host of the cache server | `""` | | `gitea_runner_config.cache.host` | The host of the cache server | `""` |
| `gitea_runner_config.cache.port` | The port of the cache server | `0` | | `gitea_runner_config.cache.port` | The port of the cache server | `0` |
| `gitea_runner_config.cache.external_server` | The external cache server URL | `""` | | `gitea_runner_config.cache.external_server` | The external cache server URL | `""` |
| `gitea_runner_config.cache.external_secret` | Shared secret between this runner and the external `gitea-runner cache-server`. | `""` |
| `gitea_runner_config.cache.offline_mode` | When true, reuse a cached action instead of fetching from the remote on every job. | `false` |
| `gitea_runner_config.container.network` | Specifies the network to which the container will connect | `""` | | `gitea_runner_config.container.network` | Specifies the network to which the container will connect | `""` |
| `gitea_runner_config.container.privileged` | Whether to use privileged mode when launching task containers | `false` | | `gitea_runner_config.container.privileged` | Whether to use privileged mode when launching task containers | `false` |
| `gitea_runner_config.container.options` | Other options to be used when the container is started | `nil` | | `gitea_runner_config.container.options` | Other options to be used when the container is started | `nil` |
@@ -94,7 +104,11 @@ Found roles matching your search:
| `gitea_runner_config.container.force_rebuild` | Rebuild docker image(s) even if already present | `false` | | `gitea_runner_config.container.force_rebuild` | Rebuild docker image(s) even if already present | `false` |
| `gitea_runner_config.container.require_docker` | Always require a reachable docker daemon | `false` | | `gitea_runner_config.container.require_docker` | Always require a reachable docker daemon | `false` |
| `gitea_runner_config.container.docker_timeout` | Timeout to wait for the docker daemon to be reachable | `0s` | | `gitea_runner_config.container.docker_timeout` | Timeout to wait for the docker daemon to be reachable | `0s` |
| `gitea_runner_config.container.bind_workdir` | Bind the workspace to the host filesystem instead of using Docker volumes. This is required for Docker-in-Docker (DinD) setups when jobs use docker compose with bind mounts (e.g., ".:/app"), as volume-based workspaces are not accessible from the DinD daemon's filesystem. | `false` |
| `gitea_runner_config.host.workdir_parent` | The parent directory of a job's working directory | `nil` | | `gitea_runner_config.host.workdir_parent` | The parent directory of a job's working directory | `nil` |
| `gitea_runner_config.metrics.enabled` | Enable exposing metrics at http://<addr>/metrics and a liveness check at /healthz. | `false` |
| `gitea_runner_config.metrics.addr` | The address for the metrics HTTP server. | `127.0.0.1:9101` |
| `gitea_runner_unix_extra_groups` | List of additional unix groups to append the executing gitea-runner user to. | `[]` |
| `gitea_runner_gitea_url` | The URL of the Gitea instance | `""` | | `gitea_runner_gitea_url` | The URL of the Gitea instance | `""` |
| `gitea_runner_token` | The registration token for the gitea_runner | `""` | | `gitea_runner_token` | The registration token for the gitea_runner | `""` |
+33 -1
View File
@@ -1,7 +1,7 @@
## @section Act Runner ## @section Act Runner
## @param gitea_runner_config_file Path to the gitea_runner configuration file ## @param gitea_runner_config_file Path to the gitea_runner configuration file
gitea_runner_config_file: /etc/gitea_runner/config.yaml gitea_runner_config_file: /etc/gitea-runner/config.yaml
gitea_runner_config: gitea_runner_config:
log: log:
@@ -29,6 +29,20 @@ gitea_runner_config:
fetch_timeout: 5s fetch_timeout: 5s
## @param gitea_runner_config.runner.fetch_interval The interval for fetching the job from the Gitea instance ## @param gitea_runner_config.runner.fetch_interval The interval for fetching the job from the Gitea instance
fetch_interval: 2s fetch_interval: 2s
## @param gitea_runner_config.runner.fetch_interval_max The maximum interval for fetching the job from the Gitea instance.
fetch_interval_max: 5s
## @param gitea_runner_config.runner.workdir_cleanup_age The maximum interval for fetching the job from the Gitea instance.
workdir_cleanup_age: 24h
## @param gitea_runner_config.runner.idle_cleanup_interval Cadence for the idle stale bind-workdir cleanup pass.
idle_cleanup_interval: 10m
## @param gitea_runner_config.runner.log_report_interval The base interval for periodic log flush to the Gitea instance.
log_report_interval: 5s
## @param gitea_runner_config.runner.log_report_max_latency The maximum time a log row can wait before being sent.
log_report_max_latency: 3s
## @param gitea_runner_config.runner.log_report_batch_size Flush logs immediately when the buffer reaches this many rows.
log_report_batch_size: 100
## @param gitea_runner_config.runner.state_report_interval The interval for reporting task state (step status, timing) to the Gitea instance.
state_report_interval: 5s
## @param gitea_runner_config.runner.github_mirror The mirror address of the github that pulls the action repository ## @param gitea_runner_config.runner.github_mirror The mirror address of the github that pulls the action repository
github_mirror: '' github_mirror: ''
## @param gitea_runner_config.runner.labels The labels of a runner are used to determine which jobs the runner can run ## @param gitea_runner_config.runner.labels The labels of a runner are used to determine which jobs the runner can run
@@ -36,6 +50,8 @@ gitea_runner_config:
- "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest"
- "ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04" - "ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04"
- "ubuntu-20.04:docker://docker.gitea.com/runner-images:ubuntu-20.04" - "ubuntu-20.04:docker://docker.gitea.com/runner-images:ubuntu-20.04"
## @param gitea_runner_config.runner.allocate_pty TODO
allocate_pty: false
cache: cache:
## @param gitea_runner_config.cache.enabled Enable cache server to use actions/cache ## @param gitea_runner_config.cache.enabled Enable cache server to use actions/cache
@@ -48,6 +64,10 @@ gitea_runner_config:
port: 0 port: 0
## @param gitea_runner_config.cache.external_server The external cache server URL ## @param gitea_runner_config.cache.external_server The external cache server URL
external_server: "" external_server: ""
## @param gitea_runner_config.cache.external_secret Shared secret between this runner and the external `gitea-runner cache-server`.
external_secret: ""
## @param gitea_runner_config.cache.offline_mode When true, reuse a cached action instead of fetching from the remote on every job.
offline_mode: false
container: container:
## @param gitea_runner_config.container.network Specifies the network to which the container will connect ## @param gitea_runner_config.container.network Specifies the network to which the container will connect
@@ -70,11 +90,23 @@ gitea_runner_config:
require_docker: false require_docker: false
## @param gitea_runner_config.container.docker_timeout Timeout to wait for the docker daemon to be reachable ## @param gitea_runner_config.container.docker_timeout Timeout to wait for the docker daemon to be reachable
docker_timeout: 0s docker_timeout: 0s
## @param gitea_runner_config.container.bind_workdir Bind the workspace to the host filesystem instead of using Docker volumes. This is required for Docker-in-Docker (DinD) setups when jobs use docker compose with bind mounts (e.g., ".:/app"), as volume-based workspaces are not accessible from the DinD daemon's filesystem.
bind_workdir: false
host: host:
## @param gitea_runner_config.host.workdir_parent The parent directory of a job's working directory ## @param gitea_runner_config.host.workdir_parent The parent directory of a job's working directory
workdir_parent: workdir_parent:
metrics:
## @param gitea_runner_config.metrics.enabled Enable exposing metrics at http://<addr>/metrics and a liveness check at /healthz.
enabled: false
## @param gitea_runner_config.metrics.addr The address for the metrics HTTP server.
addr: "127.0.0.1:9101"
## @param gitea_runner_unix_extra_groups List of additional unix groups to append the executing gitea-runner user to.
gitea_runner_unix_extra_groups: []
# - docker
## @param gitea_runner_gitea_url The URL of the Gitea instance ## @param gitea_runner_gitea_url The URL of the Gitea instance
gitea_runner_gitea_url: "" gitea_runner_gitea_url: ""
+2 -2
View File
@@ -1,6 +1,6 @@
{ {
"name": "act-runner-ansible-role", "name": "gitea-runner-ansible-role",
"homepage": "https://git.cryptic.systems/volker.raschek/act-runner-ansible-role.git", "homepage": "https://git.cryptic.systems/volker.raschek/gitea-runner-ansible-role.git",
"license": "MIT", "license": "MIT",
"private": true, "private": true,
"engineStrict": true, "engineStrict": true,
+17 -10
View File
@@ -25,9 +25,8 @@
register: _gitea_check register: _gitea_check
failed_when: _gitea_check.status is not defined or _gitea_check.status >= 400 failed_when: _gitea_check.status is not defined or _gitea_check.status >= 400
- name: Install gitea_runner and dependencies - name: Install gitea-runner and dependencies
when: when: ansible_facts['distribution'] == 'Archlinux'
- ansible_facts['distribution'] == 'Archlinux'
block: block:
- name: Update package cache - name: Update package cache
community.general.pacman: community.general.pacman:
@@ -38,22 +37,28 @@
state: present state: present
with_items: "{{ gitea_runner_package_names }}" with_items: "{{ gitea_runner_package_names }}"
- name: Create gitea_runner config directory - name: Add unix user to further groups
ansible.builtin.user:
name: "{{ gitea_runner_unix_user }}"
groups: "{{ gitea_runner_unix_groups + gitea_runner_unix_extra_groups }}"
append: true
- name: Create gitea-runner config directory
ansible.builtin.file: ansible.builtin.file:
path: "{{ gitea_runner_config_file | dirname }}" path: "{{ gitea_runner_config_file | dirname }}"
state: directory state: directory
mode: "0755" mode: "0755"
- name: Template gitea_runner config file - name: Template gitea-runner config file
ansible.builtin.template: ansible.builtin.template:
src: etc/gitea_runner/config.yaml.j2 src: etc/gitea-runner/config.yaml.j2
dest: "{{ gitea_runner_config_file }}" dest: "{{ gitea_runner_config_file }}"
owner: "{{ gitea_runner_unix_user }}" owner: "{{ gitea_runner_unix_user }}"
group: "{{ gitea_runner_unix_group }}" group: "{{ gitea_runner_unix_group }}"
mode: "0644" mode: "0644"
notify: Restart gitea_runner notify: Restart gitea_runner
- name: Create gitea_runner lib directory - name: Create gitea-runner lib directory
ansible.builtin.file: ansible.builtin.file:
path: "{{ gitea_runner_lib_dir }}" path: "{{ gitea_runner_lib_dir }}"
owner: "{{ gitea_runner_unix_user }}" owner: "{{ gitea_runner_unix_user }}"
@@ -61,14 +66,16 @@
mode: "0755" mode: "0755"
state: directory state: directory
- name: Check if gitea_runner is already registered - name: Check if gitea-runner is already registered
ansible.builtin.stat: ansible.builtin.stat:
path: "{{ gitea_runner_lib_dir }}/.runner" path: "{{ gitea_runner_lib_dir }}/.runner"
register: _gitea_runner_registration_file register: _gitea_runner_registration_file
- name: Register gitea_runner - name: Register gitea_runner
become: true
become_user: "{{ gitea_runner_unix_user }}"
ansible.builtin.command: ansible.builtin.command:
cmd: "gitea_runner --config {{ gitea_runner_config_file }} register --instance {{ gitea_runner_gitea_url }} --no-interactive --token={{ gitea_runner_token }}" cmd: "gitea-runner --config {{ gitea_runner_config_file }} register --instance {{ gitea_runner_gitea_url }} --no-interactive --token={{ gitea_runner_token }}"
chdir: "{{ gitea_runner_lib_dir }}" chdir: "{{ gitea_runner_lib_dir }}"
no_log: true no_log: true
register: _gitea_runner_register_cmd register: _gitea_runner_register_cmd
@@ -76,7 +83,7 @@
changed_when: _gitea_runner_register_cmd.rc == 0 changed_when: _gitea_runner_register_cmd.rc == 0
when: not _gitea_runner_registration_file.stat.exists when: not _gitea_runner_registration_file.stat.exists
- name: Start and enable gitea_runner service - name: Start and enable gitea-runner service
ansible.builtin.service: ansible.builtin.service:
name: "{{ gitea_runner_service_name }}" name: "{{ gitea_runner_service_name }}"
state: started state: started
+6 -5
View File
@@ -1,11 +1,12 @@
--- ---
gitea_runner_package_names: gitea_runner_package_names:
- gitea_runner - gitea-runner
gitea_runner_service_name: gitea_runner gitea_runner_service_name: gitea-runner
gitea_runner_unix_user: gitea_runner gitea_runner_unix_user: gitea-runner
gitea_runner_unix_group: gitea_runner gitea_runner_unix_group: gitea-runner
gitea_runner_unix_groups: []
gitea_runner_lib_dir: /var/lib/gitea_runner gitea_runner_lib_dir: /var/lib/gitea-runner