This repository contains workflows for deploying and updating various components of the Home Assistant project using GitHub Actions, Renovate, Tailscale and ha
cli to my Home Assistant Yellow.
The core workflow is triggered when a new release is published in the Home Assistant Core repository. Here’s how it works:
- Release Detection: Renovate detects the new release and automatically creates a pull request with the updated version.
- Merge Action: Once the pull request is reviewed and merged, it triggers the GitHub Action.
- Deployment: The GitHub Action uses Tailscale connectivity to establish an SSH connection to the Home Assistant Yellow device.
- Update Execution: The action utilizes the
ha
CLI tool to run the update command, e.g.,ha core update --version $VERSION
.
The OS workflow is similar to the Core workflow but focuses on the Home Assistant Operating System. It is triggered by new releases published in the Home Assistant OS repository. The process includes:
- Release Detection: Renovate detects the new OS release and creates a pull request with the updated version.
- Merge Action: Upon merging the pull request, the GitHub Action is triggered.
- Deployment: Tailscale is used to SSH into the Home Assistant Yellow device.
- Update Execution: The action runs the update command via the
ha os update --version $VERSION
CLI tool.
This workflow validates the Renovate configuration file whenever changes are pushed to it. It ensures that the configuration adheres to the required standards, preventing errors in dependency management.
The workflows rely on several secrets for authentication and secure operations:
TS_OAUTH_CLIENT_ID
: OAuth client ID for Tailscale.TS_OAUTH_SECRET
: OAuth secret for Tailscale.HASSIOKEY
: SSH key for accessing the Home Assistant instance.YELLOW_TS_HOSTNAME
IP address of the Home Assistant instance.