Only pre-install libraries in docker images (#4766)

This commit is contained in:
Jesse Hills 2023-05-01 15:57:57 +12:00 committed by GitHub
parent d6f7876e68
commit 57e909e790
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 7 deletions

View file

@ -63,7 +63,7 @@ RUN \
COPY requirements.txt requirements_optional.txt script/platformio_install_deps.py platformio.ini / COPY requirements.txt requirements_optional.txt script/platformio_install_deps.py platformio.ini /
RUN \ RUN \
pip3 install --no-cache-dir -r /requirements.txt -r /requirements_optional.txt \ pip3 install --no-cache-dir -r /requirements.txt -r /requirements_optional.txt \
&& /platformio_install_deps.py /platformio.ini && /platformio_install_deps.py /platformio.ini --libraries
# ======================= docker-type image ======================= # ======================= docker-type image =======================

View file

@ -2,12 +2,22 @@
# This script is used to preinstall # This script is used to preinstall
# all platformio libraries in the global storage # all platformio libraries in the global storage
import argparse
import configparser import configparser
import subprocess import subprocess
import sys
config = configparser.ConfigParser(inline_comment_prefixes=(";",)) config = configparser.ConfigParser(inline_comment_prefixes=(";",))
config.read(sys.argv[1])
parser = argparse.ArgumentParser(description="")
parser.add_argument("file", help="Path to platformio.ini", nargs=1)
parser.add_argument("-l", "--libraries", help="Install libraries", action="store_true")
parser.add_argument("-p", "--platforms", help="Install platforms", action="store_true")
parser.add_argument("-t", "--tools", help="Install tools", action="store_true")
args = parser.parse_args()
config.read(args.file)
libs = [] libs = []
tools = [] tools = []
@ -15,7 +25,7 @@ platforms = []
# Extract from every lib_deps key in all sections # Extract from every lib_deps key in all sections
for section in config.sections(): for section in config.sections():
conf = config[section] conf = config[section]
if "lib_deps" in conf: if "lib_deps" in conf and args.libraries:
for lib_dep in conf["lib_deps"].splitlines(): for lib_dep in conf["lib_deps"].splitlines():
if not lib_dep: if not lib_dep:
# Empty line or comment # Empty line or comment
@ -28,10 +38,10 @@ for section in config.sections():
continue continue
libs.append("-l") libs.append("-l")
libs.append(lib_dep) libs.append(lib_dep)
if "platform" in conf: if "platform" in conf and args.platforms:
platforms.append("-p") platforms.append("-p")
platforms.append(conf["platform"]) platforms.append(conf["platform"])
if "platform_packages" in conf: if "platform_packages" in conf and args.tools:
for tool in conf["platform_packages"].splitlines(): for tool in conf["platform_packages"].splitlines():
if not tool: if not tool:
# Empty line or comment # Empty line or comment

View file

@ -15,4 +15,4 @@ pip3 install --no-use-pep517 -e .
pre-commit install pre-commit install
script/platformio_install_deps.py platformio.ini script/platformio_install_deps.py platformio.ini --libraries --tools --platforms