From d9f0324e39b196953752bea6f7c7a4b02f31b9fb Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Wed, 6 Dec 2023 07:52:36 -0300 Subject: [PATCH 1/5] [QR Lib][Fixed] Bottom QRs should be mirrored in the Y axis --- CHANGELOG.md | 1 + kibot/out_qr_lib.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b88194a..e00ef562 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -118,6 +118,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - When used from the preflight the name of the file changed to the name of a temporal, generating problems with the plot outputs, like pcb_print - Project options not preserved, i.e. set_text_variables failing + - Bottom QRs should be mirrored in the Y axis ## [1.6.3] - 2023-06-26 diff --git a/kibot/out_qr_lib.py b/kibot/out_qr_lib.py index c89230c1..14af13e8 100644 --- a/kibot/out_qr_lib.py +++ b/kibot/out_qr_lib.py @@ -177,6 +177,7 @@ class QR_LibOptions(BaseOptions): def qr_draw_fp(self, size, size_rect, center, qrc, negative, layer, do_sep=True): mod = [] + is_bottom = layer[0] == 'B' for y in range(size): for x in range(size): if qrc.get_module(x-negative, y-negative) ^ negative: @@ -186,6 +187,9 @@ class QR_LibOptions(BaseOptions): y_pos2 = round(y_pos+size_rect, 2) rect = [Symbol('fp_poly')] # fp_rect not in v5 pts = [Symbol('pts')] + if is_bottom: + y_pos = -y_pos + y_pos2 = -y_pos2 pts.append([Symbol('xy'), x_pos, y_pos]) pts.append([Symbol('xy'), x_pos, y_pos2]) pts.append([Symbol('xy'), x_pos2, y_pos2]) From b91c24b28e7e129861b671ab9e29bede42e66077 Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Wed, 6 Dec 2023 08:21:25 -0300 Subject: [PATCH 2/5] Operations that copies the project now also copies the DRU See #491 --- CHANGELOG.md | 2 +- docs/source/configuration/sup_globals.rst | 2 +- kibot/globals.py | 2 +- kibot/gs.py | 29 +++++++++++++++++------ kibot/out_base.py | 2 +- kibot/out_copy_files.py | 4 +++- 6 files changed, 29 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e00ef562..2ee6cace 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [1.6.4] - UNRELEASED ### Added - General: - - Operations that copies the project now also copies the PRL + - Operations that copies the project now also copies the PRL and the DRU - Command line: - `--help-list-offsets` to list footprint offsets (JLCPCB) - `--help-list-rotations` to list footprint rotations (JLCPCB) diff --git a/docs/source/configuration/sup_globals.rst b/docs/source/configuration/sup_globals.rst index c4490f16..97326f84 100644 --- a/docs/source/configuration/sup_globals.rst +++ b/docs/source/configuration/sup_globals.rst @@ -171,7 +171,7 @@ which is used by the KiBot docker images, on other OSs *your mileage may vary*. - ``restore_project`` :index:`: ` [boolean=false] Restore the KiCad project after execution. Note that this option will undo operations like `set_text_variables`. - Starting with 1.6.4 it also restores the PRL (Project Local Settings) file. + Starting with 1.6.4 it also restores the PRL (Project Local Settings) and DRU (Design RUles) files. - ``set_text_variables_before_output`` :index:`: ` [boolean=false] Run the `set_text_variables` preflight before running each output that involves variants. This can be used when a text variable uses the variant and you want to create more than one variant in the same run. Note that this could be slow because it forces a board diff --git a/kibot/globals.py b/kibot/globals.py index daebc579..0d266c68 100644 --- a/kibot/globals.py +++ b/kibot/globals.py @@ -239,7 +239,7 @@ class Globals(FiltersOptions): self.restore_project = False """ Restore the KiCad project after execution. Note that this option will undo operations like `set_text_variables`. - Starting with 1.6.4 it also restores the PRL (Project Local Settings) file """ + Starting with 1.6.4 it also restores the PRL (Project Local Settings) and DRU (Design RUles) files """ self.set_text_variables_before_output = False """ Run the `set_text_variables` preflight before running each output that involves variants. This can be used when a text variable uses the variant and you want to create more than diff --git a/kibot/gs.py b/kibot/gs.py index b388c0e0..20a672ad 100644 --- a/kibot/gs.py +++ b/kibot/gs.py @@ -254,7 +254,12 @@ class GS(object): if os.path.isfile(prl_name): with open(prl_name, 'rb') as f: prl = f.read() - return (pro, prl) + dru_name = GS.pro_file[:-3]+'dru' + dru = None + if os.path.isfile(dru_name): + with open(dru_name, 'rb') as f: + dru = f.read() + return (pro, prl, dru) @staticmethod def write_pro(data): @@ -262,10 +267,12 @@ class GS(object): return with open(GS.pro_file, 'wb') as f: f.write(data[0]) - if data[1] is None: - return - with open(GS.pro_file[:-3]+'prl', 'wb') as f: - f.write(data[1]) + if data[1] is not None: + with open(GS.pro_file[:-3]+'prl', 'wb') as f: + f.write(data[1]) + if data[2] is not None: + with open(GS.pro_file[:-3]+'dru', 'wb') as f: + f.write(data[2]) @staticmethod def load_sch_title_block(): @@ -480,7 +487,7 @@ class GS(object): def copy_project(new_pcb_name, dry=False): pro_name = GS.pro_file if pro_name is None or not os.path.isfile(pro_name): - return None, None + return None, None, None pro_copy = new_pcb_name.replace('.kicad_pcb', GS.pro_ext) if not dry: logger.debug(f'Copying project `{pro_name}` to `{pro_copy}`') @@ -493,7 +500,15 @@ class GS(object): if not dry: logger.debug(f'Copying project local settings `{prl_name}` to `{prl_copy}`') copy2(prl_name, prl_copy) - return pro_copy, prl_copy + # ... and the DRU + dru_name = pro_name[:-3]+'dru' + dru_copy = None + if os.path.isfile(dru_name): + dru_copy = pro_copy[:-3]+'dru' + if not dry: + logger.debug(f'Copying project custom design rules `{dru_name}` to `{dru_copy}`') + copy2(dru_name, dru_copy) + return pro_copy, prl_copy, dru_copy @staticmethod def copy_project_sch(sch_dir): diff --git a/kibot/out_base.py b/kibot/out_base.py index 1c27ed50..cefc5fe4 100644 --- a/kibot/out_base.py +++ b/kibot/out_base.py @@ -930,7 +930,7 @@ class VariantOptions(BaseOptions): fname = os.path.join(pcb_dir, basename+'.kicad_pcb') logger.debug('Storing modified PCB to `{}`'.format(fname)) GS.board.Save(fname) - pro_name, _ = GS.copy_project(fname) + pro_name, _, _ = GS.copy_project(fname) KiConf.fix_page_layout(pro_name) return fname, pcb_dir diff --git a/kibot/out_copy_files.py b/kibot/out_copy_files.py index 87765b5e..5b5fe291 100644 --- a/kibot/out_copy_files.py +++ b/kibot/out_copy_files.py @@ -235,13 +235,15 @@ class Copy_FilesOptions(Base3DOptions): self.add_sch_files(extra_files, dest_dir) elif mode_project: self.add_sch_files(extra_files, dest_dir) - prj_name, prl_name = GS.copy_project(fname, dry) + prj_name, prl_name, dru_name = GS.copy_project(fname, dry) # Extra files that we are generating extra_files.append(fname) if prj_name: extra_files.append(prj_name) if prl_name: extra_files.append(prl_name) + if dru_name: + extra_files.append(dru_name) if mode_project: extra_files += self.copy_footprints(f.dest, dry) extra_files += self.copy_symbols(f.dest, dry) From 163027bff758b9f469f71e6e24da5e49dff0c69b Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Wed, 6 Dec 2023 09:20:39 -0300 Subject: [PATCH 3/5] [Copy Files][Fixed] Excluded locally_edited from the targets --- kibot/out_copy_files.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kibot/out_copy_files.py b/kibot/out_copy_files.py index 5b5fe291..31eda676 100644 --- a/kibot/out_copy_files.py +++ b/kibot/out_copy_files.py @@ -174,7 +174,8 @@ class Copy_FilesOptions(Base3DOptions): extra_files.append(table_fname) if dry: for lib in libs.keys(): - extra_files.append(os.path.join(out_lib_base, lib+'.kicad_sym')) + if lib != 'locally_edited': + extra_files.append(os.path.join(out_lib_base, lib+'.kicad_sym')) else: # Create the libs for lib, comps in libs.items(): From f343df8512a03d86dbec28c019dbd9151f9a43bb Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Wed, 6 Dec 2023 09:21:20 -0300 Subject: [PATCH 4/5] [Copy Files][Project][Added] Page layout See #491 --- kibot/kicad/config.py | 9 +++++---- kibot/out_copy_files.py | 3 +++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/kibot/kicad/config.py b/kibot/kicad/config.py index 184f7db8..69912d0a 100644 --- a/kibot/kicad/config.py +++ b/kibot/kicad/config.py @@ -604,7 +604,7 @@ class KiConf(object): dest = os.path.join(dest_dir, key+'.kicad_wks') logger.debug('Copying {} -> {}'.format(fname, dest)) copy2(fname, dest) - data[key]['page_layout_descr_file'] = dest + data[key]['page_layout_descr_file'] = key+'.kicad_wks' return dest else: logger.error('Missing page layout file: '+fname) @@ -626,10 +626,10 @@ class KiConf(object): else: aux = data.get('schematic', None) if aux: - layouts[0] = KiConf.expand_env(aux.get('page_layout_descr_file', None)) + layouts[0] = KiConf.expand_env(aux.get('page_layout_descr_file', None), ref_dir=dest_dir) aux = data.get('pcbnew', None) if aux: - layouts[1] = KiConf.expand_env(aux.get('page_layout_descr_file', None)) + layouts[1] = KiConf.expand_env(aux.get('page_layout_descr_file', None), ref_dir=dest_dir) return layouts def fix_page_layout_k5(project, dry): @@ -655,13 +655,14 @@ class KiConf(object): layouts[is_pcb_new] = dest else: layouts[is_pcb_new] = fname + dest = str(order)+'.kicad_wks' order = order+1 else: logger.error('Missing page layout file: '+fname) exit(MISSING_WKS) else: dest = '' - lns[c] = 'PageLayoutDescrFile='+dest+'\n' + lns[c] = f'PageLayoutDescrFile={dest}\n' if not dry: with open(project, 'wt') as f: lns = f.writelines(lns) diff --git a/kibot/out_copy_files.py b/kibot/out_copy_files.py index 31eda676..13fc08d0 100644 --- a/kibot/out_copy_files.py +++ b/kibot/out_copy_files.py @@ -245,6 +245,9 @@ class Copy_FilesOptions(Base3DOptions): extra_files.append(prl_name) if dru_name: extra_files.append(dru_name) + # Worksheet + wks = GS.fix_page_layout(prj_name, dry=dry) + extra_files += [w for w in wks if w is not None] if mode_project: extra_files += self.copy_footprints(f.dest, dry) extra_files += self.copy_symbols(f.dest, dry) From 89365a8d5dfa1b9db35e2d3fe5d0a9b3376688c0 Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Wed, 6 Dec 2023 12:31:10 -0300 Subject: [PATCH 5/5] [CI/CD][Added] Experimental meta data to the dev images See #527 --- tools/dev_image_k5/Dockerfile | 9 +++++++++ tools/dev_image_k5/build.sh | 4 ++-- tools/dev_image_k5f/Dockerfile | 12 ++++++++++++ tools/dev_image_k5f/build.sh | 4 ++-- tools/dev_image_k6/Dockerfile | 9 +++++++++ tools/dev_image_k6/build.sh | 4 ++-- tools/dev_image_k6f/Dockerfile | 12 ++++++++++++ tools/dev_image_k6f/build.sh | 4 ++-- tools/dev_image_k7/Dockerfile | 11 ++++++++++- tools/dev_image_k7/build.sh | 4 ++-- tools/dev_image_k7f/Dockerfile | 14 +++++++++++++- tools/dev_image_k7f/build.sh | 4 ++-- 12 files changed, 77 insertions(+), 14 deletions(-) diff --git a/tools/dev_image_k5/Dockerfile b/tools/dev_image_k5/Dockerfile index a148a596..14db3752 100644 --- a/tools/dev_image_k5/Dockerfile +++ b/tools/dev_image_k5/Dockerfile @@ -23,3 +23,12 @@ RUN dpkg --remove kicost kibot && \ # unzip pp.zip && \ # pip3 install KiAuto-master/ && \ # rm -rf KiAuto-master/ pp.zip && \ + +ARG repo_hash +ENV KIBOT_REPO_HASH=$repo_hash + +RUN kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n' > /etc/kiauto_tag && \ + echo -n -${KIBOT_REPO_HASH}_k >> /etc/kiauto_tag && \ + kicad_version.py >> /etc/kiauto_tag && \ + echo -n _d >> /etc/kiauto_tag && \ + cat /etc/debian_version | tr -d '\n' >> /etc/kiauto_tag diff --git a/tools/dev_image_k5/build.sh b/tools/dev_image_k5/build.sh index 8bb47f80..03e6f165 100755 --- a/tools/dev_image_k5/build.sh +++ b/tools/dev_image_k5/build.sh @@ -1,8 +1,8 @@ #!/bin/sh set -e -docker build -f Dockerfile -t ghcr.io/inti-cmnb/kicad5_auto:dev . -TG1=`docker run --rm ghcr.io/inti-cmnb/kicad5_auto:dev kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n'` HASH=`git log --pretty=format:%h -1 | tr -d '\n'` +docker build -f Dockerfile --build-arg repo_hash=${HASH} -t ghcr.io/inti-cmnb/kicad5_auto:dev . +TG1=`docker run --rm ghcr.io/inti-cmnb/kicad5_auto:dev kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n'` TG2=k`docker run --rm ghcr.io/inti-cmnb/kicad5_auto:dev kicad_version.py` TG3=d`docker run --rm ghcr.io/inti-cmnb/kicad5_auto:dev cat /etc/debian_version | tr -d '\n'` docker tag ghcr.io/inti-cmnb/kicad5_auto:dev ghcr.io/inti-cmnb/kicad5_auto:dev_${TG1}-${HASH}_${TG2}_${TG3} diff --git a/tools/dev_image_k5f/Dockerfile b/tools/dev_image_k5f/Dockerfile index e1780d5e..27a34d6a 100644 --- a/tools/dev_image_k5f/Dockerfile +++ b/tools/dev_image_k5f/Dockerfile @@ -20,3 +20,15 @@ RUN dpkg --remove kicost kibot && \ # unzip pp.zip && \ # pip3 install KiAuto-master/ && \ # rm -rf KiAuto-master/ pp.zip && \ + +ARG repo_hash +ENV KIBOT_REPO_HASH=$repo_hash +ENV KICAD_AUTO_FULL=1 + +RUN kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n' > /etc/kiauto_tag && \ + echo -n -${KIBOT_REPO_HASH}_k >> /etc/kiauto_tag && \ + kicad_version.py >> /etc/kiauto_tag && \ + echo -n _d >> /etc/kiauto_tag && \ + cat /etc/debian_version | tr -d '\n' >> /etc/kiauto_tag && \ + echo -n _b >> /etc/kiauto_tag && \ + blender --version | head -n 1 | tr -d 'Blender ' >> /etc/kiauto_tag diff --git a/tools/dev_image_k5f/build.sh b/tools/dev_image_k5f/build.sh index fb0fcc33..2d11afa0 100755 --- a/tools/dev_image_k5f/build.sh +++ b/tools/dev_image_k5f/build.sh @@ -1,8 +1,8 @@ #!/bin/sh set -e -docker build -f Dockerfile -t ghcr.io/inti-cmnb/kicad5_auto_full:dev . -TG1=`docker run --rm ghcr.io/inti-cmnb/kicad5_auto_full:dev kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n'` HASH=`git log --pretty=format:%h -1 | tr -d '\n'` +docker build -f Dockerfile --build-arg repo_hash=${HASH} -t ghcr.io/inti-cmnb/kicad5_auto_full:dev . +TG1=`docker run --rm ghcr.io/inti-cmnb/kicad5_auto_full:dev kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n'` TG2=k`docker run --rm ghcr.io/inti-cmnb/kicad5_auto_full:dev kicad_version.py` TG3=d`docker run --rm ghcr.io/inti-cmnb/kicad5_auto_full:dev cat /etc/debian_version | tr -d '\n'` TG4=b`docker run --rm ghcr.io/inti-cmnb/kicad5_auto_full:dev /bin/bash -c "blender --version | head -n 1 | tr -d 'Blender '"` diff --git a/tools/dev_image_k6/Dockerfile b/tools/dev_image_k6/Dockerfile index c39ad35a..b9736073 100644 --- a/tools/dev_image_k6/Dockerfile +++ b/tools/dev_image_k6/Dockerfile @@ -22,3 +22,12 @@ RUN dpkg --remove kicost kibot && \ # unzip pp.zip && \ # pip3 install --break-system-packages KiAuto-master/ && \ # rm -rf KiAuto-master/ pp.zip && \ + +ARG repo_hash +ENV KIBOT_REPO_HASH=$repo_hash + +RUN kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n' > /etc/kiauto_tag && \ + echo -n -${KIBOT_REPO_HASH}_k >> /etc/kiauto_tag && \ + kicad_version.py >> /etc/kiauto_tag && \ + echo -n _d >> /etc/kiauto_tag && \ + cat /etc/debian_version | tr -d '\n' >> /etc/kiauto_tag diff --git a/tools/dev_image_k6/build.sh b/tools/dev_image_k6/build.sh index d87b2575..fafcca25 100755 --- a/tools/dev_image_k6/build.sh +++ b/tools/dev_image_k6/build.sh @@ -1,8 +1,8 @@ #!/bin/sh set -e -docker build -f Dockerfile -t ghcr.io/inti-cmnb/kicad6_auto:dev . -TG1=`docker run --rm ghcr.io/inti-cmnb/kicad6_auto:dev kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n'` HASH=`git log --pretty=format:%h -1 | tr -d '\n'` +docker build -f Dockerfile --build-arg repo_hash=${HASH} -t ghcr.io/inti-cmnb/kicad6_auto:dev . +TG1=`docker run --rm ghcr.io/inti-cmnb/kicad6_auto:dev kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n'` TG2=k`docker run --rm ghcr.io/inti-cmnb/kicad6_auto:dev kicad_version.py` TG3=d`docker run --rm ghcr.io/inti-cmnb/kicad6_auto:dev cat /etc/debian_version | tr -d '\n'` docker tag ghcr.io/inti-cmnb/kicad6_auto:dev ghcr.io/inti-cmnb/kicad6_auto:dev_${TG1}-${HASH}_${TG2}_${TG3} diff --git a/tools/dev_image_k6f/Dockerfile b/tools/dev_image_k6f/Dockerfile index 418f127c..f51f7d93 100644 --- a/tools/dev_image_k6f/Dockerfile +++ b/tools/dev_image_k6f/Dockerfile @@ -20,3 +20,15 @@ RUN dpkg --remove kicost kibot && \ # unzip pp.zip && \ # pip3 install --break-system-packages KiAuto-master/ && \ # rm -rf KiAuto-master/ pp.zip && \ + +ARG repo_hash +ENV KIBOT_REPO_HASH=$repo_hash +ENV KICAD_AUTO_FULL=1 + +RUN kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n' > /etc/kiauto_tag && \ + echo -n -${KIBOT_REPO_HASH}_k >> /etc/kiauto_tag && \ + kicad_version.py >> /etc/kiauto_tag && \ + echo -n _d >> /etc/kiauto_tag && \ + cat /etc/debian_version | tr -d '\n' >> /etc/kiauto_tag && \ + echo -n _b >> /etc/kiauto_tag && \ + blender --version | head -n 1 | tr -d 'Blender ' >> /etc/kiauto_tag diff --git a/tools/dev_image_k6f/build.sh b/tools/dev_image_k6f/build.sh index 6e92945a..ee5c181f 100755 --- a/tools/dev_image_k6f/build.sh +++ b/tools/dev_image_k6f/build.sh @@ -1,8 +1,8 @@ #!/bin/sh set -e -docker build -f Dockerfile -t ghcr.io/inti-cmnb/kicad6_auto_full:dev . -TG1=`docker run --rm ghcr.io/inti-cmnb/kicad6_auto_full:dev kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n'` HASH=`git log --pretty=format:%h -1 | tr -d '\n'` +docker build -f Dockerfile --build-arg repo_hash=${HASH} -t ghcr.io/inti-cmnb/kicad6_auto_full:dev . +TG1=`docker run --rm ghcr.io/inti-cmnb/kicad6_auto_full:dev kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n'` TG2=k`docker run --rm ghcr.io/inti-cmnb/kicad6_auto_full:dev kicad_version.py` TG3=d`docker run --rm ghcr.io/inti-cmnb/kicad6_auto_full:dev cat /etc/debian_version | tr -d '\n'` TG4=b`docker run --rm ghcr.io/inti-cmnb/kicad6_auto_full:dev /bin/bash -c "blender --version | head -n 1 | tr -d 'Blender '"` diff --git a/tools/dev_image_k7/Dockerfile b/tools/dev_image_k7/Dockerfile index 8158f102..ac55f608 100644 --- a/tools/dev_image_k7/Dockerfile +++ b/tools/dev_image_k7/Dockerfile @@ -1,6 +1,6 @@ FROM ghcr.io/inti-cmnb/kicad_auto:ki7 MAINTAINER Salvador E. Tropea -LABEL Description="KiCad 6 with KiBot and other automation scripts" +LABEL Description="KiCad 7 with KiBot and other automation scripts" RUN dpkg --remove kicost kibot && \ apt-get update && \ @@ -22,3 +22,12 @@ RUN dpkg --remove kicost kibot && \ # unzip pp.zip && \ # pip3 install --break-system-packages KiAuto-master/ && \ # rm -rf KiAuto-master/ pp.zip && \ + +ARG repo_hash +ENV KIBOT_REPO_HASH=$repo_hash + +RUN kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n' > /etc/kiauto_tag && \ + echo -n -${KIBOT_REPO_HASH}_k >> /etc/kiauto_tag && \ + kicad_version.py >> /etc/kiauto_tag && \ + echo -n _d >> /etc/kiauto_tag && \ + cat /etc/debian_version | tr -d '\n' >> /etc/kiauto_tag diff --git a/tools/dev_image_k7/build.sh b/tools/dev_image_k7/build.sh index e9baf622..8bfd28f6 100755 --- a/tools/dev_image_k7/build.sh +++ b/tools/dev_image_k7/build.sh @@ -1,8 +1,8 @@ #!/bin/sh set -e -docker build -f Dockerfile -t ghcr.io/inti-cmnb/kicad7_auto:dev . -TG1=`docker run --rm ghcr.io/inti-cmnb/kicad7_auto:dev kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n'` HASH=`git log --pretty=format:%h -1 | tr -d '\n'` +docker build -f Dockerfile --build-arg repo_hash=${HASH} -t ghcr.io/inti-cmnb/kicad7_auto:dev . +TG1=`docker run --rm ghcr.io/inti-cmnb/kicad7_auto:dev kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n'` TG2=k`docker run --rm ghcr.io/inti-cmnb/kicad7_auto:dev kicad_version.py` TG3=d`docker run --rm ghcr.io/inti-cmnb/kicad7_auto:dev cat /etc/debian_version | tr -d '\n'` docker tag ghcr.io/inti-cmnb/kicad7_auto:dev ghcr.io/inti-cmnb/kicad7_auto:dev_${TG1}-${HASH}_${TG2}_${TG3} diff --git a/tools/dev_image_k7f/Dockerfile b/tools/dev_image_k7f/Dockerfile index 0ecaecef..6fedad3a 100644 --- a/tools/dev_image_k7f/Dockerfile +++ b/tools/dev_image_k7f/Dockerfile @@ -1,6 +1,6 @@ FROM ghcr.io/inti-cmnb/kicad_auto_test:ki7 MAINTAINER Salvador E. Tropea -LABEL Description="KiCad 6 with KiBot and other automation scripts" +LABEL Description="KiCad 7 with KiBot and other automation scripts" RUN dpkg --remove kicost kibot && \ apt-get update && \ @@ -20,3 +20,15 @@ RUN dpkg --remove kicost kibot && \ # unzip pp.zip && \ # pip3 install --break-system-packages KiAuto-master/ && \ # rm -rf KiAuto-master/ pp.zip && \ + +ARG repo_hash +ENV KIBOT_REPO_HASH=$repo_hash +ENV KICAD_AUTO_FULL=1 + +RUN kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n' > /etc/kiauto_tag && \ + echo -n -${KIBOT_REPO_HASH}_k >> /etc/kiauto_tag && \ + kicad_version.py >> /etc/kiauto_tag && \ + echo -n _d >> /etc/kiauto_tag && \ + cat /etc/debian_version | tr -d '\n' >> /etc/kiauto_tag && \ + echo -n _b >> /etc/kiauto_tag && \ + blender --version | head -n 1 | tr -d 'Blender ' >> /etc/kiauto_tag diff --git a/tools/dev_image_k7f/build.sh b/tools/dev_image_k7f/build.sh index 1529cdaa..ade3290f 100755 --- a/tools/dev_image_k7f/build.sh +++ b/tools/dev_image_k7f/build.sh @@ -1,8 +1,8 @@ #!/bin/sh set -e -docker build -f Dockerfile -t ghcr.io/inti-cmnb/kicad7_auto_full:dev . +export HASH=`git log --pretty=format:%h -1 | tr -d '\n'` +docker build -f Dockerfile --build-arg repo_hash=${HASH} -t ghcr.io/inti-cmnb/kicad7_auto_full:dev . TG1=`docker run --rm ghcr.io/inti-cmnb/kicad7_auto_full:dev kibot --version | sed 's/.* \([0-9]\+\.[0-9]\+\.[0-9]\+\) .*/\1/' | tr -d '\n'` -HASH=`git log --pretty=format:%h -1 | tr -d '\n'` TG2=k`docker run --rm ghcr.io/inti-cmnb/kicad7_auto_full:dev kicad_version.py` TG3=d`docker run --rm ghcr.io/inti-cmnb/kicad7_auto_full:dev cat /etc/debian_version | tr -d '\n'` TG4=b`docker run --rm ghcr.io/inti-cmnb/kicad7_auto_full:dev /bin/bash -c "blender --version | head -n 1 | tr -d 'Blender '"`