From ccb6fc3010008f4ab57665852c11d1a57b0ff9ce Mon Sep 17 00:00:00 2001 From: Otto Winter Date: Sat, 8 Aug 2020 18:42:21 +0200 Subject: [PATCH] Bump docker base image to 2.6.0 (#1245) --- .github/workflows/ci-docker.yml | 2 +- .github/workflows/release-dev.yml | 2 +- .github/workflows/release.yml | 2 +- docker/Dockerfile | 2 +- docker/Dockerfile.dev | 2 +- docker/Dockerfile.lint | 2 +- esphome/const.py | 1 + esphome/core_config.py | 2 +- script/bump-docker-base-version.py | 59 ++++++++++++++++++++++++++++++ 9 files changed, 67 insertions(+), 7 deletions(-) create mode 100755 script/bump-docker-base-version.py diff --git a/.github/workflows/ci-docker.yml b/.github/workflows/ci-docker.yml index 22109138fe..8036470f52 100644 --- a/.github/workflows/ci-docker.yml +++ b/.github/workflows/ci-docker.yml @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@v2 - name: Set up env variables run: | - base_version="2.5.0" + base_version="2.6.0" if [[ "${{ matrix.build_type }}" == "hassio" ]]; then build_from="esphome/esphome-hassio-base-${{ matrix.arch }}:${base_version}" diff --git a/.github/workflows/release-dev.yml b/.github/workflows/release-dev.yml index 81b3cef124..81c3a80b05 100644 --- a/.github/workflows/release-dev.yml +++ b/.github/workflows/release-dev.yml @@ -190,7 +190,7 @@ jobs: echo "::set-env name=TAG::${TAG}" - name: Set up env variables run: | - base_version="2.5.0" + base_version="2.6.0" if [[ "${{ matrix.build_type }}" == "hassio" ]]; then build_from="esphome/esphome-hassio-base-${{ matrix.arch }}:${base_version}" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 41ffbfa87d..7ac80355f2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -210,7 +210,7 @@ jobs: echo "::set-env name=TAG::${TAG}" - name: Set up env variables run: | - base_version="2.5.0" + base_version="2.6.0" if [[ "${{ matrix.build_type }}" == "hassio" ]]; then build_from="esphome/esphome-hassio-base-${{ matrix.arch }}:${base_version}" diff --git a/docker/Dockerfile b/docker/Dockerfile index c843f2f098..865741a39f 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -ARG BUILD_FROM=esphome/esphome-base-amd64:2.5.0 +ARG BUILD_FROM=esphome/esphome-base-amd64:2.6.0 FROM ${BUILD_FROM} # First install requirements to leverage caching when requirements don't change diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev index b3578e16b6..989802ab1e 100644 --- a/docker/Dockerfile.dev +++ b/docker/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM esphome/esphome-base-amd64:2.5.0 +FROM esphome/esphome-base-amd64:2.6.0 COPY . . diff --git a/docker/Dockerfile.lint b/docker/Dockerfile.lint index 9a29c5066f..27f04dd33d 100644 --- a/docker/Dockerfile.lint +++ b/docker/Dockerfile.lint @@ -1,4 +1,4 @@ -FROM esphome/esphome-lint-base:2.5.0 +FROM esphome/esphome-lint-base:2.6.0 COPY requirements.txt requirements_test.txt / RUN pip3 install --no-cache-dir -r /requirements.txt -r /requirements_test.txt diff --git a/esphome/const.py b/esphome/const.py index 011eab6e90..d8a8ca9905 100644 --- a/esphome/const.py +++ b/esphome/const.py @@ -25,6 +25,7 @@ ARDUINO_VERSION_ESP32 = { # See also https://github.com/platformio/platform-espressif8266/releases ARDUINO_VERSION_ESP8266 = { 'dev': 'https://github.com/platformio/platform-espressif8266.git', + '2.7.4': 'espressif8266@2.6.2', '2.7.3': 'espressif8266@2.6.1', '2.7.2': 'espressif8266@2.6.0', '2.7.1': 'espressif8266@2.5.3', diff --git a/esphome/core_config.py b/esphome/core_config.py index b0d0c55399..f167eb8d8b 100644 --- a/esphome/core_config.py +++ b/esphome/core_config.py @@ -44,7 +44,7 @@ validate_platform = cv.one_of(*ESP_PLATFORMS, upper=True) PLATFORMIO_ESP8266_LUT = { **ARDUINO_VERSION_ESP8266, - 'RECOMMENDED': ARDUINO_VERSION_ESP8266['2.7.3'], + 'RECOMMENDED': ARDUINO_VERSION_ESP8266['2.7.4'], 'LATEST': 'espressif8266', 'DEV': ARDUINO_VERSION_ESP8266['dev'], } diff --git a/script/bump-docker-base-version.py b/script/bump-docker-base-version.py new file mode 100755 index 0000000000..178643cea6 --- /dev/null +++ b/script/bump-docker-base-version.py @@ -0,0 +1,59 @@ +#!/usr/bin/env python3 + +import argparse +import re +import sys + + +def sub(path, pattern, repl, expected_count=1): + with open(path) as fh: + content = fh.read() + content, count = re.subn(pattern, repl, content, flags=re.MULTILINE) + if expected_count is not None: + assert count == expected_count, f"Pattern {pattern} replacement failed!" + with open(path, "wt") as fh: + fh.write(content) + + +def write_version(version: str): + for p in [ + ".github/workflows/ci-docker.yml", + ".github/workflows/release-dev.yml", + ".github/workflows/release.yml" + ]: + sub( + p, + r'base_version=".*"', + f'base_version="{version}"' + ) + + sub( + "docker/Dockerfile", + r"ARG BUILD_FROM=esphome/esphome-base-amd64:.*", + f"ARG BUILD_FROM=esphome/esphome-base-amd64:{version}" + ) + sub( + "docker/Dockerfile.dev", + r"FROM esphome/esphome-base-amd64:.*", + f"FROM esphome/esphome-base-amd64:{version}" + ) + sub( + "docker/Dockerfile.lint", + r"FROM esphome/esphome-lint-base:.*", + f"FROM esphome/esphome-lint-base:{version}" + ) + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('new_version', type=str) + args = parser.parse_args() + + version = args.new_version + print(f"Bumping to {version}") + write_version(version) + return 0 + + +if __name__ == "__main__": + sys.exit(main() or 0)