commit 271361ee5ec60db8ccd22c1619b312732bd8b6ae Author: Markus Pesch Date: Wed Jun 10 21:48:09 2026 +0200 Initial Commit diff --git a/.ansible-lint b/.ansible-lint new file mode 100644 index 0000000..23a163f --- /dev/null +++ b/.ansible-lint @@ -0,0 +1,4 @@ +--- + +exclude_paths: +- .gitea/ diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ad4c311 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = false diff --git a/.gitea/workflows/ansible-linters.yaml b/.gitea/workflows/ansible-linters.yaml new file mode 100644 index 0000000..6dc3337 --- /dev/null +++ b/.gitea/workflows/ansible-linters.yaml @@ -0,0 +1,19 @@ +name: Ansible Linter + +on: + pull_request: + types: [ "opened", "reopened", "synchronize" ] + push: + branches: [ '**' ] + tags-ignore: [ '**' ] + +jobs: + ansible-lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6.0.1 + - name: Run ansible-lint + uses: ansible/ansible-lint@v25.12.2 + with: + args: "--config-file .ansible-lint" + setup_python: "true" diff --git a/.gitea/workflows/markdown-linters.yaml b/.gitea/workflows/markdown-linters.yaml new file mode 100644 index 0000000..bac3496 --- /dev/null +++ b/.gitea/workflows/markdown-linters.yaml @@ -0,0 +1,18 @@ +name: Lint Markdown files + +on: + pull_request: + types: [ "opened", "reopened", "synchronize" ] + push: + branches: [ '**' ] + tags-ignore: [ '**' ] + +jobs: + markdown-lint: + runs-on: + - ubuntu-latest + steps: + - uses: actions/checkout@v6.0.1 + - uses: DavidAnson/markdownlint-cli2-action@v21.0.0 + with: + globs: '**/*.md' diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml new file mode 100644 index 0000000..f4dc263 --- /dev/null +++ b/.gitea/workflows/release.yaml @@ -0,0 +1,22 @@ +name: Release Ansible Role + +on: + push: + tags: + - '**' + workflow_dispatch: {} + +jobs: + release: + name: Release Ansible Role + runs-on: ubuntu-latest + steps: + - name: Install Ansible Galaxy + run: | + apt update --yes + apt install --yes ansible + - env: + ANSIBLE_GALAXY_TOKEN: ${{ secrets.ANSIBLE_GALAXY_TOKEN }} + name: Update Ansible Role in Ansible Galaxy + run: | + ansible-galaxy role import --token=${ANSIBLE_GALAXY_TOKEN} volker-raschek ${GITHUB_REPOSITORY#*/} \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b94996b --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.ansible +.kiro +node_modules \ No newline at end of file diff --git a/.markdownlint.yaml b/.markdownlint.yaml new file mode 100644 index 0000000..34c4081 --- /dev/null +++ b/.markdownlint.yaml @@ -0,0 +1,136 @@ +# markdownlint YAML configuration +# https://github.com/DavidAnson/markdownlint/blob/main/schema/.markdownlint.yaml + +# Default state for all rules +default: true + +# Path to configuration file to extend +extends: null + +# MD003/heading-style/header-style - Heading style +MD003: + # Heading style + style: "atx" + +# MD004/ul-style - Unordered list style +MD004: + style: "dash" + +# MD007/ul-indent - Unordered list indentation +MD007: + # Spaces for indent + indent: 2 + # Whether to indent the first level of the list + start_indented: false + +# MD009/no-trailing-spaces - Trailing spaces +MD009: + # Spaces for line break + br_spaces: 2 + # Allow spaces for empty lines in list items + list_item_empty_lines: false + # Include unnecessary breaks + strict: false + +# MD010/no-hard-tabs - Hard tabs +MD010: + # Include code blocks + code_blocks: true + +# MD012/no-multiple-blanks - Multiple consecutive blank lines +MD012: + # Consecutive blank lines + maximum: 1 + +# MD013/line-length - Line length +MD013: + # Number of characters + line_length: 120 + # Number of characters for headings + heading_line_length: 120 + # Number of characters for code blocks + code_block_line_length: 120 + # Include code blocks + code_blocks: false + # Include tables + tables: false + # Include headings + headings: true + # Strict length checking + strict: false + # Stern length checking + stern: false + +# MD022/blanks-around-headings/blanks-around-headers - Headings should be surrounded by blank lines +MD022: + # Blank lines above heading + lines_above: 1 + # Blank lines below heading + lines_below: 1 + +# MD025/single-title/single-h1 - Multiple top-level headings in the same document +MD025: + # Heading level + level: 1 + # RegExp for matching title in front matter + front_matter_title: "^\\s*title\\s*[:=]" + +# MD026/no-trailing-punctuation - Trailing punctuation in heading +MD026: + # Punctuation characters + punctuation: ".,;:!。,;:!" + +# MD029/ol-prefix - Ordered list item prefix +MD029: + # List style + style: "one_or_ordered" + +# MD030/list-marker-space - Spaces after list markers +MD030: + # Spaces for single-line unordered list items + ul_single: 1 + # Spaces for single-line ordered list items + ol_single: 1 + # Spaces for multi-line unordered list items + ul_multi: 1 + # Spaces for multi-line ordered list items + ol_multi: 1 + +# MD033/no-inline-html - Inline HTML +MD033: + # Allowed elements + allowed_elements: [] + +# MD035/hr-style - Horizontal rule style +MD035: + # Horizontal rule style + style: "---" + +# MD036/no-emphasis-as-heading/no-emphasis-as-header - Emphasis used instead of a heading +MD036: + # Punctuation characters + punctuation: ".,;:!?。,;:!?" + +# MD041/first-line-heading/first-line-h1 - First line in a file should be a top-level heading +MD041: + # Heading level + level: 1 + # RegExp for matching title in front matter + front_matter_title: "^\\s*title\\s*[:=]" + +# MD044/proper-names - Proper names should have the correct capitalization +MD044: + # List of proper names + names: [] + # Include code blocks + code_blocks: false + +# MD046/code-block-style - Code block style +MD046: + # Block style + style: "fenced" + +# MD048/code-fence-style - Code fence style +MD048: + # Code fence syle + style: "backtick" diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..e112343 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,14 @@ +{ + "ansible.python.interpreterPath": "/bin/python", + "files.associations": { + "**/.gitea/**/*.yml": "yaml", + "**/.gitea/**/*.yaml": "yaml", + "docker-compose*.yml": "dockercompose", + "*.yml": "ansible", + "*.yaml": "ansible", + ".yamllint": "yaml", + ".yamllint.yml": "yaml", + ".yamllint.yaml": "yaml" + }, + "rewrap.wrappingColumn": 120 +} \ No newline at end of file diff --git a/.yamllint.yaml b/.yamllint.yaml new file mode 100644 index 0000000..e0e4d53 --- /dev/null +++ b/.yamllint.yaml @@ -0,0 +1,19 @@ +--- + +# +# Documentation: +# https://yamllint.readthedocs.io/en/stable/ +# + +rules: + brackets: + forbid: false + min-spaces-inside: 0 + max-spaces-inside: 2 + min-spaces-inside-empty: 0 + max-spaces-inside-empty: 0 + indentation: + spaces: 2 + indent-sequences: false + line-length: + max: 360 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..89dc507 --- /dev/null +++ b/LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2025 Markus Pesch + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..bd1f128 --- /dev/null +++ b/README.md @@ -0,0 +1,105 @@ +# gitea_runner + +This Ansible role installs and configures a gitea Act Runner for executing GitHub Actions-compatible workflows. + +## Installation + +```bash +ansible-galaxy install volker-raschek.gitea_runner +``` + +## Usage + +### Simple Playbook + +```yaml +- hosts: runners + become: yes + roles: + - role: volker-raschek.gitea_runner + vars: + gitea_runner_gitea_url: "https://your-gitea-instance.com" + gitea_runner_token: "your-registration-token" +``` + +### Advanced Configuration + +```yaml +- hosts: runners + become: yes + roles: + - role: volker-raschek.gitea_runner + vars: + gitea_runner_gitea_url: "https://your-gitea-instance.com" + gitea_runner_token: "your-registration-token" + gitea_runner_config: + runner: + capacity: 2 + labels: + - "ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest" + - "custom-label:docker://custom-image:latest" + container: + privileged: true +``` + +## Further ansible roles + +This ansible role is used in combination with other ansible roles of `volker-raschek`. You can search for the other +ansible roles via the following command. + +```bash +$ ansible-galaxy role search --author "volker-raschek" + +Found roles matching your search: + + Name Description + ---- ----------- + volker-raschek.bind9 Role to install and configure bind9 on different distributions + volker-raschek.dhcpd Role to install and configure dhcpd on different distributions + volker-raschek.renovate Role to configure renovate as container image + ... +``` + +## Parameters + +### Act Runner + +| Name | Description | Value | +| ---------------------------------------------- | -------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `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.runner.file` | Where to store the registration result | `.runner` | +| `gitea_runner_config.runner.capacity` | Execute how many tasks concurrently at the same time | `1` | +| `gitea_runner_config.runner.envs` | Extra environment variables to run jobs | `{}` | +| `gitea_runner_config.runner.env_file` | Extra environment variables to run jobs from a file | `.env` | +| `gitea_runner_config.runner.timeout` | The timeout for a job to be finished | `3h` | +| `gitea_runner_config.runner.shutdown_timeout` | The timeout for the runner to wait for running jobs to finish when shutting down | `0s` | +| `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_interval` | The interval for fetching the job from the Gitea instance | `2s` | +| `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.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.host` | The host of the cache server | `""` | +| `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.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.options` | Other options to be used when the container is started | `nil` | +| `gitea_runner_config.container.workdir_parent` | The parent directory of a job's working directory | `nil` | +| `gitea_runner_config.container.valid_volumes` | Volumes that can be mounted to containers | `[]` | +| `gitea_runner_config.container.docker_host` | Overrides the docker client host with the specified one | `""` | +| `gitea_runner_config.container.force_pull` | Pull docker image(s) even if already present | `true` | +| `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.docker_timeout` | Timeout to wait for the docker daemon to be reachable | `0s` | +| `gitea_runner_config.host.workdir_parent` | The parent directory of a job's working directory | `nil` | +| `gitea_runner_gitea_url` | The URL of the Gitea instance | `""` | +| `gitea_runner_token` | The registration token for the gitea_runner | `""` | + +### Package Management + +| Name | Description | Value | +| --------------------------- | ---------------------------------------------------------- | ------ | +| `gitea_runner_update_cache` | Whether to update package cache before installing packages | `true` | diff --git a/defaults/main.yaml b/defaults/main.yaml new file mode 100644 index 0000000..00cba28 --- /dev/null +++ b/defaults/main.yaml @@ -0,0 +1,87 @@ +## @section Act Runner + +## @param gitea_runner_config_file Path to the gitea_runner configuration file +gitea_runner_config_file: /etc/gitea_runner/config.yaml + +gitea_runner_config: + log: + ## @param gitea_runner_config.log.level The level of logging, can be trace, debug, info, warn, error, fatal + level: info + + runner: + ## @param gitea_runner_config.runner.file Where to store the registration result + file: .runner + ## @param gitea_runner_config.runner.capacity Execute how many tasks concurrently at the same time + capacity: 1 + ## @param gitea_runner_config.runner.envs Extra environment variables to run jobs + envs: {} + # A_TEST_ENV_NAME_1: a_test_env_value_1 + # A_TEST_ENV_NAME_2: a_test_env_value_2 + ## @param gitea_runner_config.runner.env_file Extra environment variables to run jobs from a file + env_file: .env + ## @param gitea_runner_config.runner.timeout The timeout for a job to be finished + timeout: 3h + ## @param gitea_runner_config.runner.shutdown_timeout The timeout for the runner to wait for running jobs to finish when shutting down + shutdown_timeout: 0s + ## @param gitea_runner_config.runner.insecure Whether skip verifying the TLS certificate of the Gitea instance + insecure: false + ## @param gitea_runner_config.runner.fetch_timeout The timeout for fetching the job from the Gitea instance + fetch_timeout: 5s + ## @param gitea_runner_config.runner.fetch_interval The interval for fetching the job from the Gitea instance + fetch_interval: 2s + ## @param gitea_runner_config.runner.github_mirror The mirror address of the github that pulls the action repository + github_mirror: '' + ## @param gitea_runner_config.runner.labels The labels of a runner are used to determine which jobs the runner can run + labels: + - "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" + + cache: + ## @param gitea_runner_config.cache.enabled Enable cache server to use actions/cache + enabled: true + ## @param gitea_runner_config.cache.dir The directory to store the cache data + dir: "" + ## @param gitea_runner_config.cache.host The host of the cache server + host: "" + ## @param gitea_runner_config.cache.port The port of the cache server + port: 0 + ## @param gitea_runner_config.cache.external_server The external cache server URL + external_server: "" + + container: + ## @param gitea_runner_config.container.network Specifies the network to which the container will connect + network: "" + ## @param gitea_runner_config.container.privileged Whether to use privileged mode when launching task containers + privileged: false + ## @param gitea_runner_config.container.options Other options to be used when the container is started + options: + ## @param gitea_runner_config.container.workdir_parent The parent directory of a job's working directory + workdir_parent: + ## @param gitea_runner_config.container.valid_volumes Volumes that can be mounted to containers + valid_volumes: [] + ## @param gitea_runner_config.container.docker_host Overrides the docker client host with the specified one + docker_host: "" + ## @param gitea_runner_config.container.force_pull Pull docker image(s) even if already present + force_pull: true + ## @param gitea_runner_config.container.force_rebuild Rebuild docker image(s) even if already present + force_rebuild: false + ## @param gitea_runner_config.container.require_docker Always require a reachable docker daemon + require_docker: false + ## @param gitea_runner_config.container.docker_timeout Timeout to wait for the docker daemon to be reachable + docker_timeout: 0s + + host: + ## @param gitea_runner_config.host.workdir_parent The parent directory of a job's working directory + workdir_parent: + +## @param gitea_runner_gitea_url The URL of the Gitea instance +gitea_runner_gitea_url: "" + +## @param gitea_runner_token The registration token for the gitea_runner +gitea_runner_token: "" + +## @section Package Management + +## @param gitea_runner_update_cache Whether to update package cache before installing packages +gitea_runner_update_cache: true diff --git a/handlers/main.yaml b/handlers/main.yaml new file mode 100644 index 0000000..50ba47d --- /dev/null +++ b/handlers/main.yaml @@ -0,0 +1,7 @@ +--- + +- name: Restart gitea_runner + ansible.builtin.systemd: + name: "{{ gitea_runner_service_name }}" + state: restarted + daemon_reload: true diff --git a/meta/main.yaml b/meta/main.yaml new file mode 100644 index 0000000..fdaa227 --- /dev/null +++ b/meta/main.yaml @@ -0,0 +1,20 @@ +dependencies: [] +galaxy_info: + author: "Markus Pesch" + company: "Cryptic Systems" + description: "Ansible role to install and configure gitea Act Runner for executing GitHub Actions-compatible workflows" + galaxy_tags: + - gitea + - runner + - actions + - ci + - cd + - automation + license: "MIT" + min_ansible_version: "2.9" + namespace: volker-raschek + platforms: + - name: ArchLinux + versions: + - all + role_name: "gitea_runner" diff --git a/package.json b/package.json new file mode 100644 index 0000000..bd4f1c4 --- /dev/null +++ b/package.json @@ -0,0 +1,19 @@ +{ + "name": "act-runner-ansible-role", + "homepage": "https://git.cryptic.systems/volker.raschek/act-runner-ansible-role.git", + "license": "MIT", + "private": true, + "engineStrict": true, + "engines": { + "node": ">=16.0.0", + "npm": ">=8.0.0" + }, + "scripts": { + "readme:lint": "markdownlint *.md -f", + "readme:parameters": "readme-generator -v defaults/main.yaml -r README.md" + }, + "devDependencies": { + "@bitnami/readme-generator-for-helm": "^2.5.0", + "markdownlint-cli": "^0.45.0" + } +} diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..84f88f7 --- /dev/null +++ b/renovate.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "local>volker.raschek/renovate-config:default#master", + "local>volker.raschek/renovate-config:container#master", + "local>volker.raschek/renovate-config:actions#master", + "local>volker.raschek/renovate-config:regexp#master" + ] +} \ No newline at end of file diff --git a/tasks/main.yaml b/tasks/main.yaml new file mode 100644 index 0000000..6d4bc3c --- /dev/null +++ b/tasks/main.yaml @@ -0,0 +1,83 @@ +--- + +- name: Include OS-specific variables + ansible.builtin.include_vars: "{{ lookup('first_found', params) }}" + vars: + params: + files: + - "{{ ansible_facts['distribution'] }}_{{ ansible_facts['architecture'] }}.yaml" + - "{{ ansible_facts['distribution'] }}.yaml" + - "{{ ansible_facts['os_family'] }}_{{ ansible_facts['architecture'] }}.yaml" + - "{{ ansible_facts['os_family'] }}.yaml" + - main.yaml + paths: + - vars + +- name: Verify required variables + ansible.builtin.include_tasks: verify_vars.yaml + +- name: Check Gitea instance availability + ansible.builtin.uri: + url: "{{ gitea_runner_gitea_url }}" + method: GET + validate_certs: false + timeout: 10 + register: _gitea_check + failed_when: _gitea_check.status is not defined or _gitea_check.status >= 400 + +- name: Install gitea_runner and dependencies + when: + - ansible_facts['distribution'] == 'Archlinux' + block: + - name: Update package cache + community.general.pacman: + update_cache: "{{ gitea_runner_update_cache }}" + - name: Install packages + ansible.builtin.package: + name: "{{ item }}" + state: present + with_items: "{{ gitea_runner_package_names }}" + +- name: Create gitea_runner config directory + ansible.builtin.file: + path: "{{ gitea_runner_config_file | dirname }}" + state: directory + mode: "0755" + +- name: Template gitea_runner config file + ansible.builtin.template: + src: etc/gitea_runner/config.yaml.j2 + dest: "{{ gitea_runner_config_file }}" + owner: "{{ gitea_runner_unix_user }}" + group: "{{ gitea_runner_unix_group }}" + mode: "0644" + notify: Restart gitea_runner + +- name: Create gitea_runner lib directory + ansible.builtin.file: + path: "{{ gitea_runner_lib_dir }}" + owner: "{{ gitea_runner_unix_user }}" + group: "{{ gitea_runner_unix_group }}" + mode: "0755" + state: directory + +- name: Check if gitea_runner is already registered + ansible.builtin.stat: + path: "{{ gitea_runner_lib_dir }}/.runner" + register: _gitea_runner_registration_file + +- name: Register gitea_runner + ansible.builtin.command: + 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 }}" + no_log: true + register: _gitea_runner_register_cmd + failed_when: _gitea_runner_register_cmd.rc > 0 + changed_when: _gitea_runner_register_cmd.rc == 0 + when: not _gitea_runner_registration_file.stat.exists + +- name: Start and enable gitea_runner service + ansible.builtin.service: + name: "{{ gitea_runner_service_name }}" + state: started + enabled: true diff --git a/tasks/verify_vars.yaml b/tasks/verify_vars.yaml new file mode 100644 index 0000000..2027d60 --- /dev/null +++ b/tasks/verify_vars.yaml @@ -0,0 +1,11 @@ +--- + +- name: Verify required variables are defined + ansible.builtin.assert: + that: + - lookup('vars', item) is defined + - lookup('vars', item) | length > 0 + fail_msg: "Required variable '{{ item }}' is not defined or empty." + loop: + - gitea_runner_gitea_url + - gitea_runner_token diff --git a/templates/etc/act_runner/config.yaml.j2 b/templates/etc/act_runner/config.yaml.j2 new file mode 100644 index 0000000..456f51d --- /dev/null +++ b/templates/etc/act_runner/config.yaml.j2 @@ -0,0 +1,4 @@ +# +# {{ ansible_managed }} +# +{{ gitea_runner_config | to_nice_yaml }} \ No newline at end of file diff --git a/vars/Archlinux.yaml b/vars/Archlinux.yaml new file mode 100644 index 0000000..4d9a3d2 --- /dev/null +++ b/vars/Archlinux.yaml @@ -0,0 +1,11 @@ +--- + +gitea_runner_package_names: +- gitea_runner + +gitea_runner_service_name: gitea_runner + +gitea_runner_unix_user: gitea_runner +gitea_runner_unix_group: gitea_runner + +gitea_runner_lib_dir: /var/lib/gitea_runner