Iets waar ik toch ook nog redelijk blij mee ben wat ik de afgelopen tijd heb gemaakt en ook nog wilde delen

.
Ik heb mijn Home Assistant configuratie in Git staan. En om specifieker te zijn in een lokale Gitea installatie. Ik heb daar onlangs
Gitea Actions opgezet als lokale CI/CD oplossing. Ook zag ik dat Frenck een
Home Assistant Action had gebouwd om zijn code te integratie checken via GitHub Actions. Nu werkte de GitHub Action helaas niet out-of-the-box op Gitea. Maar ik heb inmiddels een variant op deze actie gemaakt die wel op Gitea werkt. Dus bij elke actie in Git wordt er gecontroleerd of mijn configuratie correct is:
Bij een succesvolle afronding in de
master branch laat ik met behulp van een webhook Home Assistant de nieuwste versie pullen:
met een
Shell Command in mijn
configuration.yaml:
YAML:
1
2
3
4
5
6
7
| shell_command:
git_sync: >-
cd /config/ && \
git reset --hard && \
git pull && \
(git rev-parse HEAD > .revision) && \
(git show -s --format=%s | cat > .commit_message) |
en een automatisering:
YAML:
1
2
3
4
5
6
7
8
9
10
11
| - id: system_git_sync
alias: Systeem - Git sync
triggers:
trigger: webhook
webhook_id: "git_pull"
allowed_methods:
- PUT
local_only: true
actions:
- action: shell_command.git_sync
- action: automation.reload |
Waarbij dus ook automatisch de automations worden herladen. Hier twijfelde ik nog enorm over, maar ik besefte me dat commits alleen plaatsvinden als ik ze zelf maak. Dus zoveel risico lijkt mij er niet aan te zitten.
Ook heb ik dan twee file sensors staan op
.revision en
.commit_message om ook de meest recente versie in de frontend te kunnen weergeven:
Dit combineer ik dan ook nog, zoals Frenck ook in zijn repo's heeft, met yamllint en prettier zodat de configuratie er netjes uit ziet

.
En als laatste zorg ik dat bij updates Home Assistant de
.HA_VERSION commit en pusht naar de centrale repo, tevens met een Shell Command en automatisering:
YAML:
1
2
3
4
5
6
7
8
| shell_command:
git_update_version: >-
cd /config/ && \
git config user.name "Home Assistant" && \
git config user.email "bot@homeassistant.internal" && \
git add .HA_VERSION && \
git commit -m "Updated Home Assistant version" && \
git push |
YAML:
1
2
3
4
5
6
7
| - id: system_git_push_new_version
alias: Systeem - Git push nieuwe versie
triggers:
- platform: homeassistant
event: start
actions:
- action: shell_command.git_update_version |
En dat ziet er dan IMHO enorm aardig uit:
Daar wil ik nog kijken of ik zoiets kan maken dat Gitea de huidige en eventuele volgende versie automatisch gaat checken zodat ik voor het updaten al wat weet waar ik aan toe ben. En dan heb ik ook nog een workflow waarbij ik Git tags aanmaak van de vorige versie van de repo bij een update, zodat ik eenvoudig terug kan pakken.