update act runner addons
This commit is contained in:
		
							
								
								
									
										80
									
								
								example/.README.j2
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										80
									
								
								example/.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
									
								
								example/DOCS.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								example/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
 | 
				
			||||||
							
								
								
									
										40
									
								
								example/Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								example/Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -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 <frenck@addons.community>" \
 | 
				
			||||||
 | 
					    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 <frenck@addons.community>" \
 | 
				
			||||||
 | 
					    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}
 | 
				
			||||||
							
								
								
									
										8
									
								
								example/build.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								example/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@frenck.dev
 | 
				
			||||||
 | 
					  signer: codenotary@frenck.dev
 | 
				
			||||||
							
								
								
									
										18
									
								
								example/config.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								example/config.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -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)
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								example/icon.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								example/icon.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 3.9 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								example/logo.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								example/logo.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 130 KiB  | 
							
								
								
									
										45
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/example1/finish
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/example1/finish
									
									
									
									
									
										Normal file
									
								
							@@ -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="example1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
							
								
								
									
										10
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/example1/run
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/example1/run
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
				
			||||||
							
								
								
									
										1
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/example1/type
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/example1/type
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					longrun
 | 
				
			||||||
							
								
								
									
										45
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/example2/finish
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/example2/finish
									
									
									
									
									
										Normal file
									
								
							@@ -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="example2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
							
								
								
									
										10
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/example2/run
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/example2/run
									
									
									
									
									
										Normal file
									
								
							@@ -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
 | 
				
			||||||
							
								
								
									
										1
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/example2/type
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/example2/type
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					longrun
 | 
				
			||||||
							
								
								
									
										8
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/init-example/run
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/init-example/run
									
									
									
									
									
										Normal file
									
								
							@@ -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!"
 | 
				
			||||||
							
								
								
									
										1
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/init-example/type
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/init-example/type
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					oneshot
 | 
				
			||||||
							
								
								
									
										1
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/init-example/up
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								example/rootfs/etc/s6-overlay/s6-rc.d/init-example/up
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					/etc/s6-overlay/s6-rc.d/init-example/run
 | 
				
			||||||
							
								
								
									
										116
									
								
								example/rootfs/usr/bin/example1.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								example/rootfs/usr/bin/example1.sh
									
									
									
									
									
										Normal file
									
								
							@@ -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 "<dt>" -e "</dd>" <<< "${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 "$@"
 | 
				
			||||||
							
								
								
									
										16
									
								
								example/rootfs/usr/bin/example2.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								example/rootfs/usr/bin/example2.sh
									
									
									
									
									
										Normal file
									
								
							@@ -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 "$@"
 | 
				
			||||||
							
								
								
									
										10
									
								
								example/translations/en.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								example/translations/en.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -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.
 | 
				
			||||||
							
								
								
									
										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
 | 
					ARG BUILD_FROM=ghcr.io/hassio-addons/base:16.3.4
 | 
				
			||||||
FROM $BUILD_FROM
 | 
					# hadolint ignore=DL3006
 | 
				
			||||||
 | 
					FROM ${BUILD_FROM}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENV LANG C.UTF-8
 | 
					ENV LANG C.UTF-8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Setup base system
 | 
					# Copy root filesystem
 | 
				
			||||||
ARG \
 | 
					COPY rootfs /
 | 
				
			||||||
  BUILD_ARCH
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Install necessary dependencies
 | 
					# Install necessary dependencies
 | 
				
			||||||
RUN apk add --no-cache git docker-cli python3 py3-pip && \
 | 
					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 && \
 | 
					RUN python3 -m venv /opt/ansible-venv && \
 | 
				
			||||||
    /opt/ansible-venv/bin/pip install --no-cache-dir ansible
 | 
					    /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
 | 
					# Build arguments
 | 
				
			||||||
COPY rootfs /
 | 
					ARG BUILD_ARCH
 | 
				
			||||||
RUN chmod +x /etc/services.d/actrunner/*
 | 
					ARG BUILD_DATE
 | 
				
			||||||
 | 
					ARG BUILD_DESCRIPTION
 | 
				
			||||||
 | 
					ARG BUILD_NAME
 | 
				
			||||||
 | 
					ARG BUILD_REF
 | 
				
			||||||
 | 
					ARG BUILD_REPOSITORY
 | 
				
			||||||
 | 
					ARG BUILD_VERSION
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Labels
 | 
					# Labels
 | 
				
			||||||
LABEL \
 | 
					LABEL \
 | 
				
			||||||
@@ -36,3 +40,4 @@ LABEL \
 | 
				
			|||||||
    org.opencontainers.image.licenses="NO" \
 | 
					    org.opencontainers.image.licenses="NO" \
 | 
				
			||||||
    org.opencontainers.image.url="https://mezgit.duckdns.org/mezned/HAddons" \
 | 
					    org.opencontainers.image.url="https://mezgit.duckdns.org/mezned/HAddons" \
 | 
				
			||||||
    org.opencontainers.image.source="https://mezgit.duckdns.org/mezned/HAddons/gitea_act_runner" 
 | 
					    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"
 | 
					name: "Act Runner and Ansible Add-on"
 | 
				
			||||||
version: "1.0.0"
 | 
					version: "1.0.0"
 | 
				
			||||||
slug: "act_runner_ansible"
 | 
					slug: "act_runner_ansible"
 | 
				
			||||||
description: "Home Assistant add-on that runs Act runner with Gitea integration."
 | 
					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:
 | 
					arch:
 | 
				
			||||||
  - aarch64
 | 
					  - aarch64
 | 
				
			||||||
  - amd64
 | 
					  - amd64
 | 
				
			||||||
  - armhf
 | 
					 | 
				
			||||||
  - armv7
 | 
					  - armv7
 | 
				
			||||||
  - i386
 | 
					 | 
				
			||||||
startup: "application"
 | 
					 | 
				
			||||||
boot: "auto"
 | 
					 | 
				
			||||||
options:
 | 
					options:
 | 
				
			||||||
  gitea_url: "https://your-gitea-instance.com"
 | 
					  gitea_url: "https://your-gitea-instance.com"
 | 
				
			||||||
  gitea_token: "your_token"
 | 
					  gitea_token: "your_token"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											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
 | 
					# shellcheck shell=bash
 | 
				
			||||||
# ==============================================================================
 | 
					# ==============================================================================
 | 
				
			||||||
# Home Assistant Add-on: actrunner
 | 
					# Home Assistant Community Add-on: actrunner
 | 
				
			||||||
# Runs actrunner
 | 
					# Runs actrunner script
 | 
				
			||||||
# ==============================================================================
 | 
					# ==============================================================================
 | 
				
			||||||
readonly PROMTAIL_CONFIG='/etc/promtail/config.yaml'
 | 
					
 | 
				
			||||||
declare log_level
 | 
					declare log_level
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bashio::log.info 'Starting actrunner...'
 | 
					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"] }'
 | 
					     -d '{ "name": "Act Runner", "labels": ["self-hosted"] }'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bashio::log.info "Handing over control to actrunner..."
 | 
					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