From db411b1f09213cc19426ebdd205f93f3f01b0a5b Mon Sep 17 00:00:00 2001 From: Jesse Hills <3060199+jesserockz@users.noreply.github.com> Date: Wed, 17 Apr 2024 15:32:13 +1200 Subject: [PATCH] Publish dev addon as versioned (#120) --- .github/workflows/bump-version.yml | 82 +++++++++--------- esphome-dev/CHANGELOG.md | 2 +- esphome-dev/Dockerfile | 10 --- esphome-dev/build.yaml | 5 -- esphome-dev/config.yaml | 3 +- esphome-dev/images/screenshot.png | Bin 20629 -> 70927 bytes .../rootfs/etc/cont-init.d/30-esphome-fork.sh | 47 ---------- script/bump-version.py | 62 +++++++------ script/generate.py | 20 ++--- template/addon_config.yaml | 16 ++-- 10 files changed, 88 insertions(+), 159 deletions(-) delete mode 100644 esphome-dev/Dockerfile delete mode 100644 esphome-dev/build.yaml delete mode 100755 esphome-dev/rootfs/etc/cont-init.d/30-esphome-fork.sh diff --git a/.github/workflows/bump-version.yml b/.github/workflows/bump-version.yml index a778843..b5297f7 100644 --- a/.github/workflows/bump-version.yml +++ b/.github/workflows/bump-version.yml @@ -15,45 +15,47 @@ jobs: runs-on: ubuntu-latest continue-on-error: true steps: - - uses: actions/checkout@v4.1.1 - - uses: actions/setup-python@v4.8.0 - with: - python-version: '3.11' - - run: pip install -r script/requirements.txt - - run: script/bump-version.py ${{ github.event.inputs.version }} - - name: Write Beta changelog - run: | - cat > esphome-beta/CHANGELOG.md << 'EOF' - ## ${{ github.event.inputs.version }} + - uses: actions/checkout@v4.1.1 + - uses: actions/setup-python@v4.8.0 + with: + python-version: "3.11" + - run: pip install -r script/requirements.txt + - run: script/bump-version.py ${{ github.event.inputs.version }} + - name: Write Beta changelog + if: ${{ !contains(github.event.inputs.version, 'dev') }} + run: | + cat > esphome-beta/CHANGELOG.md << 'EOF' + ## ${{ github.event.inputs.version }} - ${{ github.event.inputs.content }} - EOF - - name: Write Stable changelog - if: ${{ !contains(github.event.inputs.version, 'b') }} - run: | - cat > esphome/CHANGELOG.md << 'EOF' - ## ${{ github.event.inputs.version }} + ${{ github.event.inputs.content }} + EOF + - name: Write Stable changelog + if: ${{ !contains(github.event.inputs.version, 'b') && !contains(github.event.inputs.version, 'dev') }} + run: | + cat > esphome/CHANGELOG.md << 'EOF' + ## ${{ github.event.inputs.version }} - ${{ github.event.inputs.content }} - EOF - - name: Commit version bump - id: commit_version - run: | - git config user.name esphomebot - git config user.email esphome@nabucasa.com - git add . - git commit -m "Bump version to ${{ github.event.inputs.version }}" - git push - COMMIT=$(git rev-parse HEAD) - echo "::set-output name=commit_sha::${COMMIT}" - - name: Create a Release - uses: actions/create-release@v1.1.4 - continue-on-error: true - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ github.event.inputs.version }} - release_name: ${{ github.event.inputs.version }} - body: ${{ github.event.inputs.content }} - prerelease: ${{ contains(github.event.inputs.version, 'b') }} - commitish: ${{ steps.commit_version.outputs.commit_sha }} + ${{ github.event.inputs.content }} + EOF + - name: Commit version bump + id: commit_version + run: | + git config user.name esphomebot + git config user.email esphome@nabucasa.com + git add . + git commit -m "Bump version to ${{ github.event.inputs.version }}" + git push + COMMIT=$(git rev-parse HEAD) + echo "::set-output name=commit_sha::${COMMIT}" + - name: Create a Release + uses: actions/create-release@v1.1.4 + continue-on-error: true + if: ${{ !contains(github.event.inputs.version, 'dev') }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.event.inputs.version }} + release_name: ${{ github.event.inputs.version }} + body: ${{ github.event.inputs.content }} + prerelease: ${{ contains(github.event.inputs.version, 'b') }} + commitish: ${{ steps.commit_version.outputs.commit_sha }} diff --git a/esphome-dev/CHANGELOG.md b/esphome-dev/CHANGELOG.md index cce1854..56ce550 100644 --- a/esphome-dev/CHANGELOG.md +++ b/esphome-dev/CHANGELOG.md @@ -1 +1 @@ -See https://esphome.io/changelog/index.html +See https://github.com/esphome/esphome/commits/dev diff --git a/esphome-dev/Dockerfile b/esphome-dev/Dockerfile deleted file mode 100644 index 066ebd0..0000000 --- a/esphome-dev/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -ARG BUILD_FROM=esphome/esphome-hassio-amd64:dev -FROM ${BUILD_FROM} - -# Copy root filesystem -COPY rootfs / - -# Labels -LABEL \ - io.hass.type="addon" \ - io.hass.version=dev diff --git a/esphome-dev/build.yaml b/esphome-dev/build.yaml deleted file mode 100644 index 114bb62..0000000 --- a/esphome-dev/build.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -build_from: - aarch64: ghcr.io/esphome/esphome-hassio:dev - amd64: ghcr.io/esphome/esphome-hassio:dev - armv7: ghcr.io/esphome/esphome-hassio:dev diff --git a/esphome-dev/config.yaml b/esphome-dev/config.yaml index 17b49ea..6dee9f6 100644 --- a/esphome-dev/config.yaml +++ b/esphome-dev/config.yaml @@ -33,9 +33,10 @@ backup_exclude: init: false startup: services name: ESPHome (dev) -version: dev +version: 2024.5.0-dev20240411 slug: esphome-dev description: Development version of ESPHome add-on +image: ghcr.io/esphome/esphome-hassio stage: experimental advanced: true options: diff --git a/esphome-dev/images/screenshot.png b/esphome-dev/images/screenshot.png index 73f2f37b5aee5780e93563a2e20c8afbb4b25a29..20e8c009bcf4b01c63f89d5db56ac42c6cfaee8d 100644 GIT binary patch literal 70927 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

}IOPW{DpJ#yw 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

u;lFEqY?A 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 S@<#js0000 0: - res += f'b{self.beta}' + res += f"b{self.beta}" if self.dev: - res += '-dev' + res += f"-dev{self.dev}" return res @classmethod def parse(cls, value): - match = re.match(r'(\d+).(\d+).(\d+)(b\d+)?(-dev)?', value) + match = re.match(r"(\d+).(\d+).(\d+)(b\d+)?(-dev\d+)?", value) assert match is not None major = int(match[1]) minor = int(match[2]) patch = int(match[3]) beta = int(match[4][1:]) if match[4] else 0 - dev = bool(match[5]) - return Version( - major=major, minor=minor, patch=patch, - beta=beta, dev=dev - ) + dev = str(match[5][4:]) if match[5] else "" + return Version(major=major, minor=minor, patch=patch, beta=beta, dev=dev) -def sub(path, pattern, repl, expected_count=1): - with open(path) as fh: +def _sub(path, pattern, repl, expected_count=1): + with open(path, encoding="utf-8") as fh: content = fh.read() - content, count = re.subn(pattern, repl, content, flags=re.MULTILINE) + content, count = re.subn(pattern, repl, content, flags=re.NOFLAG) if expected_count is not None: assert count == expected_count, f"Pattern {pattern} replacement failed!" - with open(path, "wt") as fh: + with open(path, "wt", encoding="utf-8") as fh: fh.write(content) -def write_version(target: str, version: Version): - # version: '1.14.5' # BETA - # version: '1.14.5' # STABLE - sub( - 'template/addon_config.yaml', - r" version: '[^']+' # {}".format(target.upper()), - f" version: '{version}' # {target.upper()}" +def _write_version(target: str, version: Version): + # version: "2024.5.0-dev20240412" # DEV + # version: "1.14.5" # BETA + # version: "1.14.5" # STABLE + _sub( + "template/addon_config.yaml", + f' version: "[^"]+" # {target.upper()}', + f' version: "{version}" # {target.upper()}', ) def main(): parser = argparse.ArgumentParser() - parser.add_argument('new_version', type=str) + parser.add_argument("new_version", type=str) args = parser.parse_args() version = Version.parse(args.new_version) - assert not version.dev print(f"Bumping to {version}") - if version.beta: - write_version('beta', version) - generate.main(['beta']) + if version.dev: + _write_version("dev", version) + generate.main(["dev"]) + elif version.beta: + _write_version("beta", version) + generate.main(["beta"]) else: - assert not version.beta - write_version('stable', version) - write_version('beta', version) - generate.main(['stable', 'beta']) + _write_version("stable", version) + _write_version("beta", version) + generate.main(["stable", "beta"]) return 0 diff --git a/script/generate.py b/script/generate.py index 45d988c..0481582 100755 --- a/script/generate.py +++ b/script/generate.py @@ -1,13 +1,14 @@ #!/usr/bin/env python3 import argparse -import yaml from pathlib import Path from enum import Enum from shutil import copyfile import sys import os +import yaml + class Channel(Enum): stable = "stable" @@ -25,17 +26,16 @@ def main(args): root = Path(__file__).parent.parent templ = root / "template" - with open(templ / "addon_config.yaml", "r") as f: + with open(templ / "addon_config.yaml", "r", encoding="utf-8") as f: config = yaml.safe_load(f) copyf = config["copy_files"] for channel in args.channels: conf = config[f"esphome-{channel.value}"] - base_image = conf.pop("base_image", None) dir_ = root / conf.pop("directory") path = dir_ / "config.yaml" - with open(path, "w") as f: + with open(path, "w", encoding="utf-8") as f: yaml.dump(conf, f, indent=2, sort_keys=False, explicit_start=True) for file_ in copyf: @@ -46,19 +46,9 @@ def main(args): copyfile(templ / file_, dir_ / file_) path = dir_ / "FILES ARE GENERATED DO NOT EDIT" - with open(path, "w") as f: + with open(path, "w", encoding="utf-8") as f: f.write("Any edits should be made to the files in the 'template' directory") - if channel == Channel.dev: - path = dir_ / "build.yaml" - build_conf = { - "build_from": { - arch: base_image for arch in conf["arch"] - } - } - with open(path, "w") as f: - yaml.dump(build_conf, f, indent=2, sort_keys=True, explicit_start=True) - if __name__ == "__main__": main(sys.argv[1:]) diff --git a/template/addon_config.yaml b/template/addon_config.yaml index a8d7604..bc893da 100644 --- a/template/addon_config.yaml +++ b/template/addon_config.yaml @@ -16,11 +16,11 @@ base: &base # Ingress settings ingress: true ingress_port: 0 - panel_icon: 'mdi:chip' + panel_icon: "mdi:chip" # Automatically add UART devices to add-on uart: true ports: - '6052/tcp': null + "6052/tcp": null map: - ssl:ro - config:rw @@ -46,10 +46,11 @@ esphome-dev: <<: *base directory: esphome-dev name: ESPHome (dev) - version: 'dev' # DEV + version: "2024.5.0-dev20240411" # DEV slug: esphome-dev description: "Development version of ESPHome add-on" url: https://next.esphome.io/ + image: ghcr.io/esphome/esphome-hassio stage: experimental advanced: true schema: @@ -62,15 +63,14 @@ esphome-dev: certfile: str? keyfile: str? leave_front_door_open: bool? - base_image: ghcr.io/esphome/esphome-hassio:dev options: - home_assistant_dashboard_integration: false + home_assistant_dashboard_integration: false esphome-beta: <<: *base directory: esphome-beta name: ESPHome (beta) - version: '2024.4.0' # BETA + version: "2024.4.0" # BETA slug: esphome-beta description: "Beta version of ESPHome add-on" url: https://beta.esphome.io/ @@ -78,13 +78,13 @@ esphome-beta: stage: experimental advanced: true options: - home_assistant_dashboard_integration: false + home_assistant_dashboard_integration: false esphome-stable: <<: *base directory: esphome name: ESPHome - version: '2024.4.0' # STABLE + version: "2024.4.0" # STABLE slug: esphome description: "ESPHome add-on for intelligently managing all your ESP8266/ESP32 devices" image: ghcr.io/esphome/esphome-hassio