From be62f3a225efdbb05f8d2aadfe32bfef0a83bfbd Mon Sep 17 00:00:00 2001 From: atbore-phx Date: Fri, 8 Mar 2024 15:22:53 +0100 Subject: [PATCH] feat(ha): init ha addons --- .github/workflows/release.yml | 26 +++++++++++++++++++------- .gitignore | 2 +- .goreleaser.yml | 7 +++---- Dockerfile | 4 ---- home-assistant/addons/sbam/Dockerfile | 3 +++ home-assistant/addons/sbam/build.yaml | 4 ++++ home-assistant/addons/sbam/run.sh | 0 home-assistant/addons/test_local.sh | 24 ++++++++++++++++++++++++ repository.yaml | 3 +++ 9 files changed, 57 insertions(+), 16 deletions(-) delete mode 100644 Dockerfile create mode 100644 home-assistant/addons/sbam/build.yaml mode change 100644 => 100755 home-assistant/addons/sbam/run.sh create mode 100755 home-assistant/addons/test_local.sh create mode 100644 repository.yaml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0caadf9..bd82b3c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,6 +8,7 @@ on: permissions: contents: write packages: write + id-token: write jobs: goreleaser: @@ -19,12 +20,6 @@ jobs: fetch-depth: 0 - name: Set up Go uses: actions/setup-go@v4 - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - name: Run GoReleaser uses: goreleaser/goreleaser-action@v5 with: @@ -32,4 +27,21 @@ jobs: version: latest args: release --clean env: - GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" \ No newline at end of file + GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" + - name: copy binary to local ha folder + run: | + mkdir home-assistant/addons/sbam/bin/ + cp -v dist/sbam_linux_amd64_v1/bin/sbam home-assistant/addons/sbam/bin/ + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Publish build - Home Assistant builder + uses: home-assistant/builder@2024.01.0 + with: + args: | + --amd64 \ + --target /data/home-assistant/addons/sbam diff --git a/.gitignore b/.gitignore index 8c5ed2d..2ddef7c 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ *.so *.dylib bin/ - +home-assistant/addons/sbam/bin/ # Test binary, built with `go test -c` *.test diff --git a/.goreleaser.yml b/.goreleaser.yml index 7cdc996..44e17f3 100644 --- a/.goreleaser.yml +++ b/.goreleaser.yml @@ -2,15 +2,14 @@ before: hooks: - go mod tidy +release: + prerelease: true + builds: - id: "sbam" binary: bin/sbam env: - CGO_ENABLED=0 -dockers: - - image_templates: - - "ghcr.io/atbore-phx/{{ .ProjectName }}-amd64:{{ .Version }}" - - "ghcr.io/atbore-phx/{{ .ProjectName }}-amd64:latest" changelog: sort: asc diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 5ecddf2..0000000 --- a/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM homeassistant/amd64-base:latest - -COPY bin/sbam /usr/bin/ -RUN chmod a+x /usr/bin/sbam \ No newline at end of file diff --git a/home-assistant/addons/sbam/Dockerfile b/home-assistant/addons/sbam/Dockerfile index d8ba574..4affba1 100644 --- a/home-assistant/addons/sbam/Dockerfile +++ b/home-assistant/addons/sbam/Dockerfile @@ -5,4 +5,7 @@ FROM $BUILD_FROM COPY run.sh / RUN chmod a+x /run.sh +COPY bin/sbam /usr/bin/ +RUN chmod a+x /usr/bin/sbam + CMD [ "/run.sh" ] \ No newline at end of file diff --git a/home-assistant/addons/sbam/build.yaml b/home-assistant/addons/sbam/build.yaml new file mode 100644 index 0000000..235971b --- /dev/null +++ b/home-assistant/addons/sbam/build.yaml @@ -0,0 +1,4 @@ +build_from: + amd64: "homeassistant/amd64-base-debian:buster" +squash: false, +args: {} diff --git a/home-assistant/addons/sbam/run.sh b/home-assistant/addons/sbam/run.sh old mode 100644 new mode 100755 diff --git a/home-assistant/addons/test_local.sh b/home-assistant/addons/test_local.sh new file mode 100755 index 0000000..294dfc4 --- /dev/null +++ b/home-assistant/addons/test_local.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +BUILDCONTAINER_DATA_PATH="/data" +PATHTOBUILD="$BUILDCONTAINER_DATA_PATH" +ARCH=amd64 + + +PROJECTDIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )/sbam +ROOTDIR=$PROJECTDIR/../../../ +cd $PRROOTDIROJECTDIR/../../../ +make build +cd - + + +rm -rf $PROJECTDIR/bin +mkdir -p $PROJECTDIR/bin +cp $ROOTDIR/bin/sbam $PROJECTDIR/bin/ + +echo "project directory is $PROJECTDIR" +echo "build container data path is $BUILDCONTAINER_DATA_PATH" +echo "build container target build path is $PATHTOBUILD" +CMD="docker run --rm -ti --name hassio-builder --privileged -v $PROJECTDIR:$BUILDCONTAINER_DATA_PATH -v /var/run/docker.sock:/var/run/docker.sock:ro homeassistant/amd64-builder --target $PATHTOBUILD --$ARCH --test --docker-hub local" +echo "$CMD" +$CMD \ No newline at end of file diff --git a/repository.yaml b/repository.yaml new file mode 100644 index 0000000..b1ef24c --- /dev/null +++ b/repository.yaml @@ -0,0 +1,3 @@ +name: "sbam Smart Battery Manager", +url: "https://github.com/atbore-phx/sbam", +maintainer": "atbore-phx"