From f7f4e7393a9e6d32cb60fe0527d36bbe1736ced2 Mon Sep 17 00:00:00 2001 From: ai-dev Date: Fri, 1 Nov 2024 20:34:12 +0100 Subject: [PATCH] update act runner addons --- example/.README.j2 | 80 ++++++++++ example/DOCS.md | 139 ++++++++++++++++++ example/Dockerfile | 40 +++++ example/build.yaml | 8 + example/config.yaml | 18 +++ example/icon.png | Bin 0 -> 3946 bytes example/logo.png | Bin 0 -> 133153 bytes .../example1/dependencies.d/init-example | 0 .../etc/s6-overlay/s6-rc.d/example1/finish | 45 ++++++ .../etc/s6-overlay/s6-rc.d/example1/run | 10 ++ .../etc/s6-overlay/s6-rc.d/example1/type | 1 + .../s6-rc.d/example2/dependencies.d/example1 | 0 .../etc/s6-overlay/s6-rc.d/example2/finish | 45 ++++++ .../etc/s6-overlay/s6-rc.d/example2/run | 10 ++ .../etc/s6-overlay/s6-rc.d/example2/type | 1 + .../s6-rc.d/init-example/dependencies.d/base | 0 .../etc/s6-overlay/s6-rc.d/init-example/run | 8 + .../etc/s6-overlay/s6-rc.d/init-example/type | 1 + .../etc/s6-overlay/s6-rc.d/init-example/up | 1 + .../s6-rc.d/user/contents.d/example1 | 0 .../s6-rc.d/user/contents.d/example2 | 0 .../s6-rc.d/user/contents.d/init-example | 0 example/rootfs/usr/bin/example1.sh | 116 +++++++++++++++ example/rootfs/usr/bin/example2.sh | 16 ++ example/translations/en.yaml | 10 ++ gitea_act_runner/.README.j2 | 80 ++++++++++ gitea_act_runner/DOCS.md | 139 ++++++++++++++++++ gitea_act_runner/Dockerfile | 23 +-- gitea_act_runner/build.yaml | 8 + gitea_act_runner/config.yaml | 10 +- gitea_act_runner/icon.png | Bin 0 -> 9141 bytes gitea_act_runner/logo.png | Bin 0 -> 9141 bytes .../etc/s6-overlay/s6-rc.d/actrunner/finish | 45 ++++++ .../s6-rc.d}/actrunner/run | 10 +- .../rootfs/etc/services.d/actrunner/finish | 15 -- 35 files changed, 845 insertions(+), 34 deletions(-) create mode 100644 example/.README.j2 create mode 100644 example/DOCS.md create mode 100644 example/Dockerfile create mode 100644 example/build.yaml create mode 100644 example/config.yaml create mode 100644 example/icon.png create mode 100644 example/logo.png create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/example1/dependencies.d/init-example create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/example1/finish create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/example1/run create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/example1/type create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/example2/dependencies.d/example1 create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/example2/finish create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/example2/run create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/example2/type create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/init-example/dependencies.d/base create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/init-example/run create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/init-example/type create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/init-example/up create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/example1 create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/example2 create mode 100644 example/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-example create mode 100644 example/rootfs/usr/bin/example1.sh create mode 100644 example/rootfs/usr/bin/example2.sh create mode 100644 example/translations/en.yaml create mode 100644 gitea_act_runner/.README.j2 create mode 100644 gitea_act_runner/DOCS.md create mode 100644 gitea_act_runner/build.yaml create mode 100644 gitea_act_runner/icon.png create mode 100644 gitea_act_runner/logo.png create mode 100644 gitea_act_runner/rootfs/etc/s6-overlay/s6-rc.d/actrunner/finish rename gitea_act_runner/rootfs/etc/{services.d => s6-overlay/s6-rc.d}/actrunner/run (89%) delete mode 100644 gitea_act_runner/rootfs/etc/services.d/actrunner/finish diff --git a/example/.README.j2 b/example/.README.j2 new file mode 100644 index 0000000..d54b5b9 --- /dev/null +++ b/example/.README.j2 @@ -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: + + + +{% 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: + + + +{% 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 }} diff --git a/example/DOCS.md b/example/DOCS.md new file mode 100644 index 0000000..8d7a662 --- /dev/null +++ b/example/DOCS.md @@ -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 diff --git a/example/Dockerfile b/example/Dockerfile new file mode 100644 index 0000000..ea2b4d7 --- /dev/null +++ b/example/Dockerfile @@ -0,0 +1,40 @@ +ARG BUILD_FROM=ghcr.io/hassio-addons/base:16.3.4 +# hadolint ignore=DL3006 +FROM ${BUILD_FROM} + +# Copy root filesystem +COPY rootfs / + +# Setup base +RUN apk add --no-cache \ + coreutils=9.5-r1 \ + wget=1.24.5-r0 + +# 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 \ + io.hass.name="${BUILD_NAME}" \ + io.hass.description="${BUILD_DESCRIPTION}" \ + io.hass.arch="${BUILD_ARCH}" \ + io.hass.type="addon" \ + io.hass.version=${BUILD_VERSION} \ + maintainer="Franck Nijhof " \ + org.opencontainers.image.title="${BUILD_NAME}" \ + org.opencontainers.image.description="${BUILD_DESCRIPTION}" \ + org.opencontainers.image.vendor="Home Assistant Community Add-ons" \ + org.opencontainers.image.authors="Franck Nijhof " \ + org.opencontainers.image.licenses="MIT" \ + org.opencontainers.image.url="https://addons.community" \ + org.opencontainers.image.source="https://github.com/${BUILD_REPOSITORY}" \ + org.opencontainers.image.documentation="https://github.com/${BUILD_REPOSITORY}/blob/main/README.md" \ + org.opencontainers.image.created=${BUILD_DATE} \ + org.opencontainers.image.revision=${BUILD_REF} \ + org.opencontainers.image.version=${BUILD_VERSION} diff --git a/example/build.yaml b/example/build.yaml new file mode 100644 index 0000000..b88c410 --- /dev/null +++ b/example/build.yaml @@ -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@frenck.dev + signer: codenotary@frenck.dev diff --git a/example/config.yaml b/example/config.yaml new file mode 100644 index 0000000..214a6c9 --- /dev/null +++ b/example/config.yaml @@ -0,0 +1,18 @@ +--- +name: Example +version: dev +slug: example +description: Example add-on by Community Home Assistant Add-ons +url: https://github.com/hassio-addons/addon-example +codenotary: codenotary@frenck.dev +init: false +arch: + - aarch64 + - amd64 + - armv7 +options: + log_level: info + seconds_between_quotes: 5 +schema: + log_level: list(trace|debug|info|notice|warning|error|fatal) + seconds_between_quotes: int(1,120) diff --git a/example/icon.png b/example/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..2b10fa1747b60e65258fe6c1303244a060adc5a3 GIT binary patch literal 3946 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 CFAYKf literal 0 HcmV?d00001 diff --git a/example/logo.png b/example/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..106e5c2c724d721e19d0b532c7fce1de34c46c7e GIT binary patch literal 133153 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 Eg1@S5WdHyG literal 0 HcmV?d00001 diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/example1/dependencies.d/init-example b/example/rootfs/etc/s6-overlay/s6-rc.d/example1/dependencies.d/init-example new file mode 100644 index 0000000..e69de29 diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/example1/finish b/example/rootfs/etc/s6-overlay/s6-rc.d/example1/finish new file mode 100644 index 0000000..2853f90 --- /dev/null +++ b/example/rootfs/etc/s6-overlay/s6-rc.d/example1/finish @@ -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 + 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 diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/example1/run b/example/rootfs/etc/s6-overlay/s6-rc.d/example1/run new file mode 100644 index 0000000..1b2ef45 --- /dev/null +++ b/example/rootfs/etc/s6-overlay/s6-rc.d/example1/run @@ -0,0 +1,10 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Community Add-on: Example +# Runs example1 script +# ============================================================================== + +bashio::log.info "Starting Example1..." + +exec /usr/bin/example1.sh diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/example1/type b/example/rootfs/etc/s6-overlay/s6-rc.d/example1/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/example/rootfs/etc/s6-overlay/s6-rc.d/example1/type @@ -0,0 +1 @@ +longrun diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/example2/dependencies.d/example1 b/example/rootfs/etc/s6-overlay/s6-rc.d/example2/dependencies.d/example1 new file mode 100644 index 0000000..e69de29 diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/example2/finish b/example/rootfs/etc/s6-overlay/s6-rc.d/example2/finish new file mode 100644 index 0000000..83560f3 --- /dev/null +++ b/example/rootfs/etc/s6-overlay/s6-rc.d/example2/finish @@ -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 + 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 diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/example2/run b/example/rootfs/etc/s6-overlay/s6-rc.d/example2/run new file mode 100644 index 0000000..942f5af --- /dev/null +++ b/example/rootfs/etc/s6-overlay/s6-rc.d/example2/run @@ -0,0 +1,10 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Community Add-on: Example +# Runs example2 script +# ============================================================================== + +bashio::log.info "Starting Example2..." + +exec /usr/bin/example2.sh diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/example2/type b/example/rootfs/etc/s6-overlay/s6-rc.d/example2/type new file mode 100644 index 0000000..5883cff --- /dev/null +++ b/example/rootfs/etc/s6-overlay/s6-rc.d/example2/type @@ -0,0 +1 @@ +longrun diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/init-example/dependencies.d/base b/example/rootfs/etc/s6-overlay/s6-rc.d/init-example/dependencies.d/base new file mode 100644 index 0000000..e69de29 diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/init-example/run b/example/rootfs/etc/s6-overlay/s6-rc.d/init-example/run new file mode 100644 index 0000000..3fab621 --- /dev/null +++ b/example/rootfs/etc/s6-overlay/s6-rc.d/init-example/run @@ -0,0 +1,8 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Community Add-on: Example +# Example init script, runs before any other service +# ============================================================================== + +bashio::log.info "Oh, hi! I'm the init script!" diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/init-example/type b/example/rootfs/etc/s6-overlay/s6-rc.d/init-example/type new file mode 100644 index 0000000..bdd22a1 --- /dev/null +++ b/example/rootfs/etc/s6-overlay/s6-rc.d/init-example/type @@ -0,0 +1 @@ +oneshot diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/init-example/up b/example/rootfs/etc/s6-overlay/s6-rc.d/init-example/up new file mode 100644 index 0000000..d4a2c00 --- /dev/null +++ b/example/rootfs/etc/s6-overlay/s6-rc.d/init-example/up @@ -0,0 +1 @@ +/etc/s6-overlay/s6-rc.d/init-example/run diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/example1 b/example/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/example1 new file mode 100644 index 0000000..e69de29 diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/example2 b/example/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/example2 new file mode 100644 index 0000000..e69de29 diff --git a/example/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-example b/example/rootfs/etc/s6-overlay/s6-rc.d/user/contents.d/init-example new file mode 100644 index 0000000..e69de29 diff --git a/example/rootfs/usr/bin/example1.sh b/example/rootfs/usr/bin/example1.sh new file mode 100644 index 0000000..8059e8b --- /dev/null +++ b/example/rootfs/usr/bin/example1.sh @@ -0,0 +1,116 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Community Add-on: Example +# +# Example add-on for Home Assistant. +# This add-on displays a random quote every X seconds. +# ============================================================================== + +# ------------------------------------------------------------------------------ +# Get a random quote from quotationspage.com +# +# Arguments: +# None +# Returns: +# String with the quote +# ------------------------------------------------------------------------------ +get_quote_online() { + local number + local html + local quote + + bashio::log.trace "${FUNCNAME[0]}" + + number=$(( ( RANDOM % 999 ) + 1 )) + html=$(wget -q -O - "http://www.quotationspage.com/quote/${number}.html") + + quote=$(grep -e "
" -e "" <<< "${html}" \ + | awk -F'[<>]' '{ + if($2 ~ /dt/) + { print $3 } + else if($4 ~ /b/) + { print "-- " $7 " n(" $19 ")"} + }' + ) + + echo "${quote}" +} + +# ------------------------------------------------------------------------------ +# Get a random quote from a prefined set of quotes +# +# Arguments: +# None +# Returns: +# String with the quote +# ------------------------------------------------------------------------------ +get_quote_offline() { + local -i number + local -a quotes + + bashio::log.trace "${FUNCNAME[0]}" + + quotes+=("Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.\\n -Samuel Beckett") + quotes+=("Never give up, for that is just the place and time that the tide will turn.\\n -Harriet Beecher Stowe") + quotes+=("Our greatest weakness lies in giving up. The most certain way to succeed is always to try just one more time.\\n -Thomas A. Edison") + quotes+=("Life isn't about getting and having, it's about giving and being.\\n -Kevin Kruse") + quotes+=("Strive not to be a success, but rather to be of value.\\n -Albert Einstein") + quotes+=("You miss 100% of the shots you don't take.\\n -Wayne Gretzky") + quotes+=("People who are unable to motivate themselves must be content with mediocrity, no matter how impressive their other talents. \\n -Andrew Carnegie") + quotes+=("Design is not just what it looks like and feels like. Design is how it works.\\n -Steve Jobs") + quotes+=("Only those who dare to fail greatly can ever achieve greatly.\\n -Robert F. Kennedy") + quotes+=("All our dreams can come true, if we have the courage to pursue them.\\n -Walt Disney") + quotes+=("Success consists of going from failure to failure without loss of enthusiasm.\\n -Winston Churchill") + + number=$(( ( RANDOM % 11 ) + 1 )) + echo "${quotes[$number]}" +} + +# ------------------------------------------------------------------------------ +# Displays a random quote +# +# Arguments: +# None +# Returns: +# String with the quote +# ----------------------------------------------------------------------------- +display_quote() { + local quote + local timestamp + + bashio::log.trace "${FUNCNAME[0]}" + + if wget -q --spider http://www.quotationspage.com; then + quote=$(get_quote_online) + else + bashio::log.notice \ + 'Could not connect to quotationspage.com, using an offline quote' + quote=$(get_quote_offline) + fi + + # shellcheck disable=SC2001 + quote=$(sed 's/n()//g' <<< "${quote}" | xargs -0 echo | fmt -40) + timestamp=$(date +"%T") + + bashio::log.info "Random quote loaded @ ${timestamp}" + echo -e "${quote}" +} + +# ============================================================================== +# RUN LOGIC +# ------------------------------------------------------------------------------ +main() { + local sleep + + bashio::log.trace "${FUNCNAME[0]}" + + sleep=$(bashio::config 'seconds_between_quotes') + bashio::log.info "Seconds between each quotes is set to: ${sleep}" + + while true; do + display_quote + sleep "${sleep}" + done +} +main "$@" diff --git a/example/rootfs/usr/bin/example2.sh b/example/rootfs/usr/bin/example2.sh new file mode 100644 index 0000000..ff9101f --- /dev/null +++ b/example/rootfs/usr/bin/example2.sh @@ -0,0 +1,16 @@ +#!/command/with-contenv bashio +# shellcheck shell=bash +# ============================================================================== +# Home Assistant Community Add-on: Example +# +# Example add-on for Home Assistant. +# ------------------------------------------------------------------------------ +main() { + bashio::log.trace "${FUNCNAME[0]}" + + while true; do + echo "Second Script Output" + sleep 10 + done +} +main "$@" diff --git a/example/translations/en.yaml b/example/translations/en.yaml new file mode 100644 index 0000000..9737cc5 --- /dev/null +++ b/example/translations/en.yaml @@ -0,0 +1,10 @@ +--- +configuration: + log_level: + name: Log level + description: The amount of logging the add-on should do. + seconds_between_quotes: + name: Seconds between quotes + description: >- + The number of seconds the add-on waits until showing a new quote in the + add-on log. diff --git a/gitea_act_runner/.README.j2 b/gitea_act_runner/.README.j2 new file mode 100644 index 0000000..d54b5b9 --- /dev/null +++ b/gitea_act_runner/.README.j2 @@ -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: + + + +{% 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: + + + +{% 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 }} diff --git a/gitea_act_runner/DOCS.md b/gitea_act_runner/DOCS.md new file mode 100644 index 0000000..8d7a662 --- /dev/null +++ b/gitea_act_runner/DOCS.md @@ -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 diff --git a/gitea_act_runner/Dockerfile b/gitea_act_runner/Dockerfile index 843a86e..11b88a8 100644 --- a/gitea_act_runner/Dockerfile +++ b/gitea_act_runner/Dockerfile @@ -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" + diff --git a/gitea_act_runner/build.yaml b/gitea_act_runner/build.yaml new file mode 100644 index 0000000..0eed77f --- /dev/null +++ b/gitea_act_runner/build.yaml @@ -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 diff --git a/gitea_act_runner/config.yaml b/gitea_act_runner/config.yaml index e7cc2da..46ac6df 100644 --- a/gitea_act_runner/config.yaml +++ b/gitea_act_runner/config.yaml @@ -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)? \ No newline at end of file + log_level: list(trace|debug|info|notice|warning|error|fatal)? diff --git a/gitea_act_runner/icon.png b/gitea_act_runner/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a2c3fb415091cc4cff1eee348ea590187c6eaa GIT binary patch literal 9141 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 G67)ZFLUrr_ literal 0 HcmV?d00001 diff --git a/gitea_act_runner/logo.png b/gitea_act_runner/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f0a2c3fb415091cc4cff1eee348ea590187c6eaa GIT binary patch literal 9141 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 G67)ZFLUrr_ literal 0 HcmV?d00001 diff --git a/gitea_act_runner/rootfs/etc/s6-overlay/s6-rc.d/actrunner/finish b/gitea_act_runner/rootfs/etc/s6-overlay/s6-rc.d/actrunner/finish new file mode 100644 index 0000000..69c81c7 --- /dev/null +++ b/gitea_act_runner/rootfs/etc/s6-overlay/s6-rc.d/actrunner/finish @@ -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 + 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 diff --git a/gitea_act_runner/rootfs/etc/services.d/actrunner/run b/gitea_act_runner/rootfs/etc/s6-overlay/s6-rc.d/actrunner/run similarity index 89% rename from gitea_act_runner/rootfs/etc/services.d/actrunner/run rename to gitea_act_runner/rootfs/etc/s6-overlay/s6-rc.d/actrunner/run index 2e97be1..1295519 100644 --- a/gitea_act_runner/rootfs/etc/services.d/actrunner/run +++ b/gitea_act_runner/rootfs/etc/s6-overlay/s6-rc.d/actrunner/run @@ -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 \ No newline at end of file diff --git a/gitea_act_runner/rootfs/etc/services.d/actrunner/finish b/gitea_act_runner/rootfs/etc/services.d/actrunner/finish deleted file mode 100644 index 75cbc4e..0000000 --- a/gitea_act_runner/rootfs/etc/services.d/actrunner/finish +++ /dev/null @@ -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"