update act runner addons
This commit is contained in:
		
							
								
								
									
										80
									
								
								gitea_act_runner/.README.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								gitea_act_runner/.README.j2
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,80 @@
 | 
			
		||||
# Home Assistant Community Add-on: Example
 | 
			
		||||
 | 
			
		||||
[![Release][release-shield]][release] ![Project Stage][project-stage-shield] ![Project Maintenance][maintenance-shield]
 | 
			
		||||
 | 
			
		||||
[![Discord][discord-shield]][discord] [![Community Forum][forum-shield]][forum]
 | 
			
		||||
 | 
			
		||||
[![Sponsor Frenck via GitHub Sponsors][github-sponsors-shield]][github-sponsors]
 | 
			
		||||
 | 
			
		||||
[![Support Frenck on Patreon][patreon-shield]][patreon]
 | 
			
		||||
 | 
			
		||||
Example add-on by Community Home Assistant add-ons.
 | 
			
		||||
 | 
			
		||||
## About
 | 
			
		||||
 | 
			
		||||
This is an example add-on for Home Assistant. When started, it displays a
 | 
			
		||||
random quote every 5 seconds.
 | 
			
		||||
 | 
			
		||||
It shows off several features and structures like:
 | 
			
		||||
 | 
			
		||||
- Full blown GitHub repository.
 | 
			
		||||
- General Dockerfile structure and setup.
 | 
			
		||||
- The use of the `config.yaml` and `build.yaml` files.
 | 
			
		||||
- General shell scripting structure (`run.sh`).
 | 
			
		||||
- Quality assurance using CodeClimate.
 | 
			
		||||
- Continuous integration and deployment using GitLab.
 | 
			
		||||
- Usage of the Community Home Assistant Add-ons build environment.
 | 
			
		||||
- Small use of the Bash function library in our base images.
 | 
			
		||||
- The use of Docker label schema.
 | 
			
		||||
 | 
			
		||||
{% if channel == "edge" %}
 | 
			
		||||
## WARNING! THIS IS AN EDGE VERSION!
 | 
			
		||||
 | 
			
		||||
This Home Assistant Add-ons repository contains edge builds of add-ons.
 | 
			
		||||
Edge builds add-ons are based upon the latest development version.
 | 
			
		||||
 | 
			
		||||
- They may not work at all.
 | 
			
		||||
- They might stop working at any time.
 | 
			
		||||
- They could have a negative impact on your system.
 | 
			
		||||
 | 
			
		||||
This repository was created for:
 | 
			
		||||
 | 
			
		||||
- Anybody willing to test.
 | 
			
		||||
- Anybody interested in trying out upcoming add-ons or add-on features.
 | 
			
		||||
- Developers.
 | 
			
		||||
 | 
			
		||||
If you are more interested in stable releases of our add-ons:
 | 
			
		||||
 | 
			
		||||
<https://github.com/hassio-addons/repository>
 | 
			
		||||
 | 
			
		||||
{% endif %}
 | 
			
		||||
{% if channel == "beta" %}
 | 
			
		||||
## WARNING! THIS IS A BETA VERSION!
 | 
			
		||||
 | 
			
		||||
This Home Assistant Add-ons repository contains beta releases of add-ons.
 | 
			
		||||
 | 
			
		||||
- They might stop working at any time.
 | 
			
		||||
- They could have a negative impact on your system.
 | 
			
		||||
 | 
			
		||||
This repository was created for:
 | 
			
		||||
 | 
			
		||||
- Anybody willing to test.
 | 
			
		||||
- Anybody interested in trying out upcoming add-ons or add-on features.
 | 
			
		||||
 | 
			
		||||
If you are more interested in stable releases of our add-ons:
 | 
			
		||||
 | 
			
		||||
<https://github.com/hassio-addons/repository>
 | 
			
		||||
 | 
			
		||||
{% endif %}
 | 
			
		||||
[discord-shield]: https://img.shields.io/discord/478094546522079232.svg
 | 
			
		||||
[discord]: https://discord.me/hassioaddons
 | 
			
		||||
[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg
 | 
			
		||||
[forum]: https://community.home-assistant.io?u=frenck
 | 
			
		||||
[github-sponsors-shield]: https://frenck.dev/wp-content/uploads/2019/12/github_sponsor.png
 | 
			
		||||
[github-sponsors]: https://github.com/sponsors/frenck
 | 
			
		||||
[maintenance-shield]: https://img.shields.io/maintenance/yes/2024.svg
 | 
			
		||||
[patreon-shield]: https://frenck.dev/wp-content/uploads/2019/12/patreon.png
 | 
			
		||||
[patreon]: https://www.patreon.com/frenck
 | 
			
		||||
[project-stage-shield]: https://img.shields.io/badge/project%20stage-production%20ready-brightgreen.svg
 | 
			
		||||
[release-shield]: https://img.shields.io/badge/version-{{ version }}-blue.svg
 | 
			
		||||
[release]: {{ repo }}/tree/{{ version }}
 | 
			
		||||
							
								
								
									
										139
									
								
								gitea_act_runner/DOCS.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								gitea_act_runner/DOCS.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,139 @@
 | 
			
		||||
# Home Assistant Community Add-on: Example
 | 
			
		||||
 | 
			
		||||
This is an example add-on for Home Assistant. When started, it displays a
 | 
			
		||||
random quote every 5 seconds.
 | 
			
		||||
 | 
			
		||||
It shows off several features and structures like:
 | 
			
		||||
 | 
			
		||||
- Full blown GitHub repository.
 | 
			
		||||
- General Dockerfile structure and setup.
 | 
			
		||||
- The use of the `config.yaml` and `build.yaml` files.
 | 
			
		||||
- General shell scripting structure (`run.sh`).
 | 
			
		||||
- Quality assurance using CodeClimate.
 | 
			
		||||
- Continuous integration and deployment using GitLab.
 | 
			
		||||
- Usage of the Community Home Assistant Add-ons build environment.
 | 
			
		||||
- Small use of the Bash function library in our base images.
 | 
			
		||||
- The use of Docker label schema.
 | 
			
		||||
 | 
			
		||||
## Installation
 | 
			
		||||
 | 
			
		||||
The installation of this add-on is pretty straightforward and not different in
 | 
			
		||||
comparison to installing any other Home Assistant add-on.
 | 
			
		||||
 | 
			
		||||
1. Click the Home Assistant My button below to open the add-on on your Home
 | 
			
		||||
   Assistant instance.
 | 
			
		||||
 | 
			
		||||
   [![Open this add-on in your Home Assistant instance.][addon-badge]][addon]
 | 
			
		||||
 | 
			
		||||
1. Click the "Install" button to install the add-on.
 | 
			
		||||
1. Start the "Example" add-on.
 | 
			
		||||
1. Check the logs of the "Example" add-on to see it in action.
 | 
			
		||||
 | 
			
		||||
## Configuration
 | 
			
		||||
 | 
			
		||||
Eventought this add-on is just an example add-on, it does come with some
 | 
			
		||||
configuration options to play around with.
 | 
			
		||||
 | 
			
		||||
**Note**: _Remember to restart the add-on when the configuration is changed._
 | 
			
		||||
 | 
			
		||||
Example add-on configuration:
 | 
			
		||||
 | 
			
		||||
```yaml
 | 
			
		||||
log_level: info
 | 
			
		||||
seconds_between_quotes: 5
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Option: `log_level`
 | 
			
		||||
 | 
			
		||||
The `log_level` option controls the level of log output by the add-on and can
 | 
			
		||||
be changed to be more or less verbose, which might be useful when you are
 | 
			
		||||
dealing with an unknown issue. Possible values are:
 | 
			
		||||
 | 
			
		||||
- `trace`: Show every detail, like all called internal functions.
 | 
			
		||||
- `debug`: Shows detailed debug information.
 | 
			
		||||
- `info`: Normal (usually) interesting events.
 | 
			
		||||
- `warning`: Exceptional occurrences that are not errors.
 | 
			
		||||
- `error`: Runtime errors that do not require immediate action.
 | 
			
		||||
- `fatal`: Something went terribly wrong. Add-on becomes unusable.
 | 
			
		||||
 | 
			
		||||
Please note that each level automatically includes log messages from a
 | 
			
		||||
more severe level, e.g., `debug` also shows `info` messages. By default,
 | 
			
		||||
the `log_level` is set to `info`, which is the recommended setting unless
 | 
			
		||||
you are troubleshooting.
 | 
			
		||||
 | 
			
		||||
### Option: `seconds_between_quotes`
 | 
			
		||||
 | 
			
		||||
Sets the number of seconds between the output of each quote. The value
 | 
			
		||||
must be between `1` and `120` seconds. This value is set to `5` seconds by
 | 
			
		||||
default.
 | 
			
		||||
 | 
			
		||||
## Changelog & Releases
 | 
			
		||||
 | 
			
		||||
This repository keeps a change log using [GitHub's releases][releases]
 | 
			
		||||
functionality.
 | 
			
		||||
 | 
			
		||||
Releases are based on [Semantic Versioning][semver], and use the format
 | 
			
		||||
of `MAJOR.MINOR.PATCH`. In a nutshell, the version will be incremented
 | 
			
		||||
based on the following:
 | 
			
		||||
 | 
			
		||||
- `MAJOR`: Incompatible or major changes.
 | 
			
		||||
- `MINOR`: Backwards-compatible new features and enhancements.
 | 
			
		||||
- `PATCH`: Backwards-compatible bugfixes and package updates.
 | 
			
		||||
 | 
			
		||||
## Support
 | 
			
		||||
 | 
			
		||||
Got questions?
 | 
			
		||||
 | 
			
		||||
You have several options to get them answered:
 | 
			
		||||
 | 
			
		||||
- The [Home Assistant Community Add-ons Discord chat server][discord] for add-on
 | 
			
		||||
  support and feature requests.
 | 
			
		||||
- The [Home Assistant Discord chat server][discord-ha] for general Home
 | 
			
		||||
  Assistant discussions and questions.
 | 
			
		||||
- The Home Assistant [Community Forum][forum].
 | 
			
		||||
- Join the [Reddit subreddit][reddit] in [/r/homeassistant][reddit]
 | 
			
		||||
 | 
			
		||||
You could also [open an issue here][issue] GitHub.
 | 
			
		||||
 | 
			
		||||
## Authors & contributors
 | 
			
		||||
 | 
			
		||||
The original setup of this repository is by [Franck Nijhof][frenck].
 | 
			
		||||
 | 
			
		||||
For a full list of all authors and contributors,
 | 
			
		||||
check [the contributor's page][contributors].
 | 
			
		||||
 | 
			
		||||
## License
 | 
			
		||||
 | 
			
		||||
MIT License
 | 
			
		||||
 | 
			
		||||
Copyright (c) 2017-2024 Franck Nijhof
 | 
			
		||||
 | 
			
		||||
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.
 | 
			
		||||
 | 
			
		||||
[addon-badge]: https://my.home-assistant.io/badges/supervisor_addon.svg
 | 
			
		||||
[addon]: https://my.home-assistant.io/redirect/supervisor_addon/?addon=a0d7b954_example&repository_url=https%3A%2F%2Fgithub.com%2Fhassio-addons%2Frepository
 | 
			
		||||
[contributors]: https://github.com/hassio-addons/addon-example/graphs/contributors
 | 
			
		||||
[discord-ha]: https://discord.gg/c5DvZ4e
 | 
			
		||||
[discord]: https://discord.me/hassioaddons
 | 
			
		||||
[forum]: https://community.home-assistant.io/t/repository-community-hass-io-add-ons/24705?u=frenck
 | 
			
		||||
[frenck]: https://github.com/frenck
 | 
			
		||||
[issue]: https://github.com/hassio-addons/addon-example/issues
 | 
			
		||||
[reddit]: https://reddit.com/r/homeassistant
 | 
			
		||||
[releases]: https://github.com/hassio-addons/addon-example/releases
 | 
			
		||||
[semver]: http://semver.org/spec/v2.0.0.html
 | 
			
		||||
@@ -1,11 +1,11 @@
 | 
			
		||||
ARG BUILD_FROM
 | 
			
		||||
FROM $BUILD_FROM
 | 
			
		||||
ARG BUILD_FROM=ghcr.io/hassio-addons/base:16.3.4
 | 
			
		||||
# hadolint ignore=DL3006
 | 
			
		||||
FROM ${BUILD_FROM}
 | 
			
		||||
 | 
			
		||||
ENV LANG C.UTF-8
 | 
			
		||||
 | 
			
		||||
# Setup base system
 | 
			
		||||
ARG \
 | 
			
		||||
  BUILD_ARCH
 | 
			
		||||
# Copy root filesystem
 | 
			
		||||
COPY rootfs /
 | 
			
		||||
 | 
			
		||||
# Install necessary dependencies
 | 
			
		||||
RUN apk add --no-cache git docker-cli python3 py3-pip && \
 | 
			
		||||
@@ -15,11 +15,15 @@ RUN adduser -s /bin/false -D -H actrunner
 | 
			
		||||
RUN python3 -m venv /opt/ansible-venv && \
 | 
			
		||||
    /opt/ansible-venv/bin/pip install --no-cache-dir ansible
 | 
			
		||||
 | 
			
		||||
# Optional: Additional steps for SSH/GitHub authentication or configuration
 | 
			
		||||
 | 
			
		||||
# Copy your add-on scripts and configuration files
 | 
			
		||||
COPY rootfs /
 | 
			
		||||
RUN chmod +x /etc/services.d/actrunner/*
 | 
			
		||||
# Build arguments
 | 
			
		||||
ARG BUILD_ARCH
 | 
			
		||||
ARG BUILD_DATE
 | 
			
		||||
ARG BUILD_DESCRIPTION
 | 
			
		||||
ARG BUILD_NAME
 | 
			
		||||
ARG BUILD_REF
 | 
			
		||||
ARG BUILD_REPOSITORY
 | 
			
		||||
ARG BUILD_VERSION
 | 
			
		||||
 | 
			
		||||
# Labels
 | 
			
		||||
LABEL \
 | 
			
		||||
@@ -36,3 +40,4 @@ LABEL \
 | 
			
		||||
    org.opencontainers.image.licenses="NO" \
 | 
			
		||||
    org.opencontainers.image.url="https://mezgit.duckdns.org/mezned/HAddons" \
 | 
			
		||||
    org.opencontainers.image.source="https://mezgit.duckdns.org/mezned/HAddons/gitea_act_runner" 
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										8
									
								
								gitea_act_runner/build.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								gitea_act_runner/build.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
---
 | 
			
		||||
build_from:
 | 
			
		||||
  aarch64: ghcr.io/hassio-addons/base:16.3.4
 | 
			
		||||
  amd64: ghcr.io/hassio-addons/base:16.3.4
 | 
			
		||||
  armv7: ghcr.io/hassio-addons/base:16.3.4
 | 
			
		||||
codenotary:
 | 
			
		||||
  base_image: codenotary@feres.dev
 | 
			
		||||
  signer: codenotary@feres.dev
 | 
			
		||||
@@ -1,15 +1,15 @@
 | 
			
		||||
---
 | 
			
		||||
name: "Act Runner and Ansible Add-on"
 | 
			
		||||
version: "1.0.0"
 | 
			
		||||
slug: "act_runner_ansible"
 | 
			
		||||
description: "Home Assistant add-on that runs Act runner with Gitea integration."
 | 
			
		||||
url: https://mezgit.duckdns.org/mezned/HAddons/gitea_act_runner
 | 
			
		||||
codenotary: codenotary@feres.dev
 | 
			
		||||
init: false
 | 
			
		||||
arch:
 | 
			
		||||
  - aarch64
 | 
			
		||||
  - amd64
 | 
			
		||||
  - armhf
 | 
			
		||||
  - armv7
 | 
			
		||||
  - i386
 | 
			
		||||
startup: "application"
 | 
			
		||||
boot: "auto"
 | 
			
		||||
options:
 | 
			
		||||
  gitea_url: "https://your-gitea-instance.com"
 | 
			
		||||
  gitea_token: "your_token"
 | 
			
		||||
@@ -21,4 +21,4 @@ schema:
 | 
			
		||||
  gitea_token: str
 | 
			
		||||
  repository: str
 | 
			
		||||
  act_runner_options: str?
 | 
			
		||||
  log_level: list(trace|debug|info|notice|warning|error|fatal)?
 | 
			
		||||
  log_level: list(trace|debug|info|notice|warning|error|fatal)?
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								gitea_act_runner/icon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								gitea_act_runner/icon.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 8.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								gitea_act_runner/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								gitea_act_runner/logo.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 8.9 KiB  | 
@@ -0,0 +1,45 @@
 | 
			
		||||
#!/command/with-contenv bashio
 | 
			
		||||
# shellcheck shell=bash
 | 
			
		||||
# ==============================================================================
 | 
			
		||||
# Home Assistant Community Add-on: Example
 | 
			
		||||
# ==============================================================================
 | 
			
		||||
declare exit_code
 | 
			
		||||
readonly exit_code_container=$(</run/s6-linux-init-container-results/exitcode)
 | 
			
		||||
readonly exit_code_service="${1}"
 | 
			
		||||
readonly exit_code_signal="${2}"
 | 
			
		||||
readonly service="actrunner"
 | 
			
		||||
 | 
			
		||||
bashio::log.info \
 | 
			
		||||
  "Service ${service} exited with code ${exit_code_service}" \
 | 
			
		||||
  "(by signal ${exit_code_signal})"
 | 
			
		||||
 | 
			
		||||
# Received a signal
 | 
			
		||||
if [[ "${exit_code_service}" -eq 256 ]]; then
 | 
			
		||||
 | 
			
		||||
  # The signal might be a result of another service crashing. Only
 | 
			
		||||
  # overwrite the container exit code if it is not already set.
 | 
			
		||||
  if [[ "${exit_code_container}" -eq 0 ]]; then
 | 
			
		||||
    echo $((128 + $exit_code_signal)) > /run/s6-linux-init-container-results/exitcode
 | 
			
		||||
  fi
 | 
			
		||||
 | 
			
		||||
  # If the signal is SIGTERM, we should halt the container and take down
 | 
			
		||||
  # the whole  process tree.
 | 
			
		||||
  [[ "${exit_code_signal}" -eq 15 ]] && exec /run/s6/basedir/bin/halt
 | 
			
		||||
 | 
			
		||||
# The service exited with a non-zero exit code, which means it crashed.
 | 
			
		||||
elif [[ "${exit_code_service}" -ne 0 ]]; then
 | 
			
		||||
 | 
			
		||||
  # The service might be a result of another service crashing. Only
 | 
			
		||||
  # overwrite the container exit code if it is not already set.
 | 
			
		||||
  if [[ "${exit_code_container}" -eq 0 ]]; then
 | 
			
		||||
    echo "${exit_code_service}" > /run/s6-linux-init-container-results/exitcode
 | 
			
		||||
  fi
 | 
			
		||||
  
 | 
			
		||||
  # We should halt the container and take down the whole process tree.
 | 
			
		||||
  exec /run/s6/basedir/bin/halt
 | 
			
		||||
 | 
			
		||||
# The service exited with a zero exit code, which means it exited, let
 | 
			
		||||
# S6 supervision restart it.
 | 
			
		||||
else
 | 
			
		||||
  bashio::log.info "Service ${service} restarting..."
 | 
			
		||||
fi
 | 
			
		||||
@@ -1,10 +1,10 @@
 | 
			
		||||
#!/usr/bin/with-contenv bashio
 | 
			
		||||
#!/command/with-contenv bashio
 | 
			
		||||
# shellcheck shell=bash
 | 
			
		||||
# ==============================================================================
 | 
			
		||||
# Home Assistant Add-on: actrunner
 | 
			
		||||
# Runs actrunner
 | 
			
		||||
# Home Assistant Community Add-on: actrunner
 | 
			
		||||
# Runs actrunner script
 | 
			
		||||
# ==============================================================================
 | 
			
		||||
readonly PROMTAIL_CONFIG='/etc/promtail/config.yaml'
 | 
			
		||||
 | 
			
		||||
declare log_level
 | 
			
		||||
 | 
			
		||||
bashio::log.info 'Starting actrunner...'
 | 
			
		||||
@@ -47,4 +47,4 @@ curl -X POST "$GITEA_URL/api/v1/repos/$REPOSITORY/actions/runners" \
 | 
			
		||||
     -d '{ "name": "Act Runner", "labels": ["self-hosted"] }'
 | 
			
		||||
 | 
			
		||||
bashio::log.info "Handing over control to actrunner..."
 | 
			
		||||
exec s6-setuidgid actrunner act $ACT_OPTIONS
 | 
			
		||||
exec /usr/local/bin/act $ACT_OPTIONS
 | 
			
		||||
@@ -1,15 +0,0 @@
 | 
			
		||||
#!/usr/bin/env bashio
 | 
			
		||||
# ==============================================================================
 | 
			
		||||
# Take down the S6 supervision tree when actrunner fails
 | 
			
		||||
# s6-overlay docs: https://github.com/just-containers/s6-overlay
 | 
			
		||||
# ==============================================================================
 | 
			
		||||
 | 
			
		||||
declare APP_EXIT_CODE=${1}
 | 
			
		||||
 | 
			
		||||
if [[ "${APP_EXIT_CODE}" -ne 0 ]] && [[ "${APP_EXIT_CODE}" -ne 256 ]]; then
 | 
			
		||||
  bashio::log.warning "Halt add-on with exit code ${APP_EXIT_CODE}"
 | 
			
		||||
  echo "${APP_EXIT_CODE}" > /run/s6-linux-init-container-results/exitcode
 | 
			
		||||
  exec /run/s6/basedir/bin/halt
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
bashio::log.info "Service restart after closing"
 | 
			
		||||
		Reference in New Issue
	
	Block a user