1
0

Compare commits

...

30 Commits

13 changed files with 125 additions and 172 deletions

View File

@@ -24,7 +24,7 @@ jobs:
git config user.name esphomebot git config user.name esphomebot
git config user.email esphome@nabucasa.com git config user.email esphome@nabucasa.com
git add . git add .
git commit -m "Bump version to v${{ github.event.inputs.version }}" git commit -m "Bump version to ${{ github.event.inputs.version }}"
git push git push
COMMIT=$(git rev-parse HEAD) COMMIT=$(git rev-parse HEAD)
echo "::set-output name=commit_sha::${COMMIT}" echo "::set-output name=commit_sha::${COMMIT}"
@@ -35,7 +35,7 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
tag_name: v${{ github.event.inputs.version }} tag_name: ${{ github.event.inputs.version }}
release_name: ${{ github.event.inputs.version }} release_name: ${{ github.event.inputs.version }}
body: 'See https://beta.esphome.io/changelog/index.html' body: 'See https://beta.esphome.io/changelog/index.html'
prerelease: true prerelease: true
@@ -47,30 +47,8 @@ jobs:
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
tag_name: v${{ github.event.inputs.version }} tag_name: ${{ github.event.inputs.version }}
release_name: ${{ github.event.inputs.version }} release_name: ${{ github.event.inputs.version }}
body: 'See https://esphome.io/changelog/index.html' body: 'See https://esphome.io/changelog/index.html'
prerelease: false prerelease: false
commitish: ${{ steps.commit_version.outputs.commit_sha }} commitish: ${{ steps.commit_version.outputs.commit_sha }}
deploy-community-addons:
runs-on: ubuntu-latest
needs: [create-release]
steps:
- name: Publish beta release to community-addons repository
run: |
docker run --rm hassioaddons/repository-updater:latest \
--repository hassio-addons/repository-beta \
--addon esphome \
--token "${TOKEN}"
env:
TOKEN: ${{ secrets.COMMUNITY_ADDONS_TOKEN }}
- if: ${{ !contains(github.event.inputs.version, 'b') }}
name: Publish stable release to community-addons repository
run: |
docker run --rm hassioaddons/repository-updater:latest \
--repository hassio-addons/repository \
--addon esphome \
--token "${TOKEN}"
env:
TOKEN: ${{ secrets.COMMUNITY_ADDONS_TOKEN }}

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
__pycache__/ __pycache__/
*.py[cod] *.py[cod]
*$py.class *$py.class
venv/

View File

@@ -1,44 +0,0 @@
{
"advanced": true,
"arch": [
"amd64",
"armv7",
"aarch64"
],
"auth_api": true,
"backup_exclude": [
"*/*/"
],
"description": "Beta version of ESPHome add-on",
"hassio_api": true,
"host_network": true,
"image": "ghcr.io/esphome/esphome-hassio-{arch}",
"ingress": true,
"ingress_port": 0,
"map": [
"ssl:ro",
"config:rw"
],
"name": "ESPHome (beta)",
"panel_icon": "mdi:chip",
"ports": {
"6052/tcp": null
},
"ports_description": {
"6052/tcp": "Web interface (not required for Home Assistant ingress)"
},
"schema": {
"certfile": "str?",
"keyfile": "str?",
"leave_front_door_open": "bool?",
"relative_url": "str?",
"ssl": "bool?",
"status_use_ping": "bool?",
"streamer_mode": "bool?"
},
"slug": "esphome-beta",
"stage": "experimental",
"uart": true,
"url": "https://beta.esphome.io/",
"version": "2022.1.2"
}

37
esphome-beta/config.yaml Normal file
View File

@@ -0,0 +1,37 @@
---
advanced: true
arch:
- amd64
- armv7
- aarch64
auth_api: true
backup_exclude:
- '*/*/'
description: Beta version of ESPHome add-on
hassio_api: true
host_network: true
image: ghcr.io/esphome/esphome-hassio-{arch}
ingress: true
ingress_port: 0
map:
- ssl:ro
- config:rw
name: ESPHome (beta)
panel_icon: mdi:chip
ports:
6052/tcp: null
ports_description:
6052/tcp: Web interface (not required for Home Assistant ingress)
schema:
certfile: str?
keyfile: str?
leave_front_door_open: bool?
relative_url: str?
ssl: bool?
status_use_ping: bool?
streamer_mode: bool?
slug: esphome-beta
stage: experimental
uart: true
url: https://beta.esphome.io/
version: 2022.4.0b3

View File

@@ -1,7 +0,0 @@
{
"build_from": {
"aarch64": "ghcr.io/esphome/esphome-hassio-aarch64:dev",
"amd64": "ghcr.io/esphome/esphome-hassio-amd64:dev",
"armv7": "ghcr.io/esphome/esphome-hassio-armv7:dev"
}
}

5
esphome-dev/build.yaml Normal file
View File

@@ -0,0 +1,5 @@
---
build_from:
aarch64: ghcr.io/esphome/esphome-hassio-aarch64:dev
amd64: ghcr.io/esphome/esphome-hassio-amd64:dev
armv7: ghcr.io/esphome/esphome-hassio-armv7:dev

View File

@@ -1,44 +0,0 @@
{
"advanced": true,
"arch": [
"amd64",
"armv7",
"aarch64"
],
"auth_api": true,
"backup_exclude": [
"*/*/"
],
"description": "Development version of ESPHome add-on",
"hassio_api": true,
"host_network": true,
"ingress": true,
"ingress_port": 0,
"map": [
"ssl:ro",
"config:rw"
],
"name": "ESPHome (dev)",
"panel_icon": "mdi:chip",
"ports": {
"6052/tcp": null
},
"ports_description": {
"6052/tcp": "Web interface (not required for Home Assistant ingress)"
},
"schema": {
"certfile": "str?",
"esphome_fork": "str?",
"keyfile": "str?",
"leave_front_door_open": "bool?",
"relative_url": "str?",
"ssl": "bool?",
"status_use_ping": "bool?",
"streamer_mode": "bool?"
},
"slug": "esphome-dev",
"stage": "experimental",
"uart": true,
"url": "https://next.esphome.io/",
"version": "dev"
}

37
esphome-dev/config.yaml Normal file
View File

@@ -0,0 +1,37 @@
---
advanced: true
arch:
- amd64
- armv7
- aarch64
auth_api: true
backup_exclude:
- '*/*/'
description: Development version of ESPHome add-on
hassio_api: true
host_network: true
ingress: true
ingress_port: 0
map:
- ssl:ro
- config:rw
name: ESPHome (dev)
panel_icon: mdi:chip
ports:
6052/tcp: null
ports_description:
6052/tcp: Web interface (not required for Home Assistant ingress)
schema:
certfile: str?
esphome_fork: str?
keyfile: str?
leave_front_door_open: bool?
relative_url: str?
ssl: bool?
status_use_ping: bool?
streamer_mode: bool?
slug: esphome-dev
stage: experimental
uart: true
url: https://next.esphome.io/
version: dev

View File

@@ -1,42 +0,0 @@
{
"arch": [
"amd64",
"armv7",
"aarch64"
],
"auth_api": true,
"backup_exclude": [
"*/*/"
],
"description": "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices",
"hassio_api": true,
"host_network": true,
"image": "ghcr.io/esphome/esphome-hassio-{arch}",
"ingress": true,
"ingress_port": 0,
"map": [
"ssl:ro",
"config:rw"
],
"name": "ESPHome",
"panel_icon": "mdi:chip",
"ports": {
"6052/tcp": null
},
"ports_description": {
"6052/tcp": "Web interface (not required for Home Assistant ingress)"
},
"schema": {
"certfile": "str?",
"keyfile": "str?",
"leave_front_door_open": "bool?",
"relative_url": "str?",
"ssl": "bool?",
"status_use_ping": "bool?",
"streamer_mode": "bool?"
},
"slug": "esphome",
"uart": true,
"url": "https://esphome.io/",
"version": "2022.1.2"
}

35
esphome/config.yaml Normal file
View File

@@ -0,0 +1,35 @@
---
arch:
- amd64
- armv7
- aarch64
auth_api: true
backup_exclude:
- '*/*/'
description: ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices
hassio_api: true
host_network: true
image: ghcr.io/esphome/esphome-hassio-{arch}
ingress: true
ingress_port: 0
map:
- ssl:ro
- config:rw
name: ESPHome
panel_icon: mdi:chip
ports:
6052/tcp: null
ports_description:
6052/tcp: Web interface (not required for Home Assistant ingress)
schema:
certfile: str?
keyfile: str?
leave_front_door_open: bool?
relative_url: str?
ssl: bool?
status_use_ping: bool?
streamer_mode: bool?
slug: esphome
uart: true
url: https://esphome.io/
version: 2022.3.2

View File

@@ -4,7 +4,6 @@ import argparse
import yaml import yaml
from pathlib import Path from pathlib import Path
from enum import Enum from enum import Enum
import json
from shutil import copyfile from shutil import copyfile
import sys import sys
@@ -34,9 +33,9 @@ def main(args):
conf = config[f"esphome-{channel.value}"] conf = config[f"esphome-{channel.value}"]
base_image = conf.pop("base_image", None) base_image = conf.pop("base_image", None)
dir_ = root / conf.pop("directory") dir_ = root / conf.pop("directory")
path = dir_ / "config.json" path = dir_ / "config.yaml"
with open(path, "w") as f: with open(path, "w") as f:
json.dump(conf, f, indent=2, sort_keys=True) yaml.dump(conf, f, indent=2, sort_keys=True, explicit_start=True)
for file_, conf_ in copyf.items(): for file_, conf_ in copyf.items():
if Path.exists(templ / channel.value / file_): if Path.exists(templ / channel.value / file_):
@@ -49,16 +48,14 @@ def main(args):
f.write("Any edits should be made to the files in the 'template' directory") f.write("Any edits should be made to the files in the 'template' directory")
if channel == Channel.dev: if channel == Channel.dev:
path = dir_ / "build.json" path = dir_ / "build.yaml"
build_conf = { build_conf = {
"build_from": { "build_from": {
arch: base_image.format(arch=arch) for arch in conf["arch"] arch: base_image.format(arch=arch) for arch in conf["arch"]
} }
} }
with open(path, "w") as f: with open(path, "w") as f:
json.dump(build_conf, f, indent=2, sort_keys=True) yaml.dump(build_conf, f, indent=2, sort_keys=True, explicit_start=True)
print(f"Wrote {path}")
if __name__ == "__main__": if __name__ == "__main__":

View File

@@ -1 +1 @@
PyYAML==5.4 PyYAML==6.0

View File

@@ -62,7 +62,7 @@ esphome-beta:
<<: *base <<: *base
directory: esphome-beta directory: esphome-beta
name: ESPHome (beta) name: ESPHome (beta)
version: '2022.1.2' # BETA version: '2022.4.0b3' # BETA
slug: esphome-beta slug: esphome-beta
description: "Beta version of ESPHome add-on" description: "Beta version of ESPHome add-on"
url: https://beta.esphome.io/ url: https://beta.esphome.io/
@@ -74,7 +74,7 @@ esphome-stable:
<<: *base <<: *base
directory: esphome directory: esphome
name: ESPHome name: ESPHome
version: '2022.1.2' # STABLE version: '2022.3.2' # STABLE
slug: esphome slug: esphome
description: "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices" description: "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices"
image: ghcr.io/esphome/esphome-hassio-{arch} image: ghcr.io/esphome/esphome-hassio-{arch}