Skip to content

Commit

Permalink
Create 8.0.0 RC iamges
Browse files Browse the repository at this point in the history
  • Loading branch information
set-soft committed Feb 13, 2024
1 parent ff38261 commit 75c2518
Show file tree
Hide file tree
Showing 15 changed files with 148 additions and 56 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/docker-image-base_os_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ on:
- bon_*
repository_dispatch:
types: [build_base_os_nightly]
schedule:
- cron: '43 5 * * 1-5'

jobs:
push_to_registry:
Expand Down Expand Up @@ -40,4 +42,4 @@ jobs:
- name: Trigger Base OS full image build
run: |
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_debian/dispatches --data '{"event_type": "build_base_os_nightly_full"}'
curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_debian/dispatches --data '{"event_type": "build_nightly"}'
# curl -X POST -u "${{secrets.PAT_USERNAME}}:${{secrets.PAT_TOKEN}}" -H "Accept: application/vnd.github.v3+json" -H "Content-Type: application/json" https://api.github.com/repos/INTI-CMNB/kicad_debian/dispatches --data '{"event_type": "build_nightly"}'
4 changes: 2 additions & 2 deletions .github/workflows/docker-image-nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ on:
- n*
repository_dispatch:
types: [build_nightly]
schedule:
- cron: '43 5 * * 1-5'
# schedule:
# - cron: '43 5 * * 1-5'

jobs:
push_to_registry:
Expand Down
2 changes: 0 additions & 2 deletions .github/workflows/docker-image-nightly_full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ on:
- nf*
repository_dispatch:
types: [build_nightlyf]
schedule:
- cron: '43 5 * * 1-5'

jobs:
push_to_registry:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docker-image-stable_nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ on:
- sn*
repository_dispatch:
types: [build_stable_nightly]
schedule:
- cron: '33 5 * * 1-5'
# schedule:
# - cron: '33 5 * * 1-5'

jobs:
push_to_registry:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/docker-image-stable_nightly_full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ on:
- snf*
repository_dispatch:
types: [build_stable_nightlyf]
schedule:
- cron: '33 5 * * 1-5'
# schedule:
# - cron: '33 5 * * 1-5'

jobs:
push_to_registry:
Expand Down
24 changes: 10 additions & 14 deletions base_os_nightly/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,25 +1,21 @@
FROM ubuntu:lunar
FROM kicad/kicad:nightly
MAINTAINER Salvador E. Tropea <[email protected]>
LABEL Description="Ubuntu Lunar with basic tools for KiBot"
LABEL org.opencontainers.image.description "Ubuntu Lunar with basic tools for KiBot"
LABEL Description="Debian with basic tools for KiBot"
LABEL org.opencontainers.image.description "Debian with basic tools for KiBot"

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC
COPY dl_deb.py /usr/bin/
RUN apt-get update && \
echo "We need the PPA for the backported python3-wxgtk4.0" && \
apt-get install -y software-properties-common && \
add-apt-repository ppa:kicad/kicad-dev-nightly && \
apt-get update && \
echo "KiCad 7.99 needs backported python3-wxgtk4.0" && \
apt-get -y install --no-install-recommends python3-wxgtk4.0 && \
apt-get -y install --no-install-recommends git && \
apt-get -y install --no-install-recommends make rar bzip2 librsvg2-bin ghostscript && \
apt-get -y install --no-install-recommends imagemagick python3-qrcodegen poppler-utils python3-requests python3-xlsxwriter && \
COPY debconf.conf /etc/
USER root
RUN sed -i -e's/ main/ main contrib non-free/g' /etc/apt/sources.list.d/debian.sources && \
apt-get update && \
apt-get -y install --no-install-recommends git make rar bzip2 librsvg2-bin ghostscript && \
apt-get -y install --no-install-recommends imagemagick python3-qrcodegen poppler-utils python3-requests python3-xlsxwriter python3-mistune && \
echo "KiCost Digi-Key plugin dependencies" && \
apt -y install --no-install-recommends python3-certifi python3-dateutil python3-inflection python3-openssl python3-pkg-resources python3-requests python3-six python3-tldextract python3-urllib3 && \
echo "KiCost dependencies" && \
apt -y install --no-install-recommends python3-bs4 python3-colorama python3-lxml python3-requests python3-tqdm python3-validators python3-yaml && \
apt -y install --no-install-recommends python3-bs4 python3-colorama python3-lxml python3-requests python3-tqdm python3-validators python3-wxgtk4.0 python3-yaml && \
echo "KiKit dependencies" && \
apt -y install --no-install-recommends python3-click python3-commentjson python3-markdown2 python3-numpy python3-shapely openscad && \
echo "KiAuto dependencies" && \
Expand Down
2 changes: 1 addition & 1 deletion base_os_nightly/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
set -e
cp ../base_os/dl_deb.py .
docker build -f Dockerfile -t ghcr.io/inti-cmnb/base_os:latest_nightly .
TG=`docker run --rm ghcr.io/inti-cmnb/base_os:latest_nightly /bin/bash -c "grep DISTRIB_CODENAME /etc/lsb-release | sed s/DISTRIB_CODENAME=//" | tr -d '\n'`
TG=d`docker run --rm ghcr.io/inti-cmnb/base_os:latest_nightly cat /etc/debian_version | tr -d '\n'`
docker tag ghcr.io/inti-cmnb/base_os:latest_nightly ghcr.io/inti-cmnb/base_os:${TG}
docker push ghcr.io/inti-cmnb/base_os:${TG}
docker push ghcr.io/inti-cmnb/base_os:latest_nightly
Expand Down
85 changes: 85 additions & 0 deletions base_os_nightly/debconf.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
# This is the main config file for debconf. It tells debconf where to
# store data. The format of this file is a set of stanzas. Each stanza
# except the first sets up a database for debconf to use. For details, see
# debconf.conf(5) (in the debconf-doc package).
#
# So first things first. This first stanza gives the names of two databases.

# Debconf will use this database to store the data you enter into it,
# and some other dynamic data.
Config: configdb
# Debconf will use this database to store static template data.
Templates: templatedb

# World-readable, and accepts everything but passwords.
Name: config
Driver: File
Mode: 644
Reject-Type: password
Filename: /var/cache/debconf/config.dat
Backup: false

# Not world readable (the default), and accepts only passwords.
Name: passwords
Driver: File
Mode: 600
Backup: false
Required: false
Accept-Type: password
Filename: /var/cache/debconf/passwords.dat

# Set up the configdb database. By default, it consists of a stack of two
# databases, one to hold passwords and one for everything else.
Name: configdb
Driver: Stack
Stack: config, passwords

# Set up the templatedb database, which is a single flat text file
# by default.
Name: templatedb
Driver: File
Mode: 644
Filename: /var/cache/debconf/templates.dat
Backup: false

# Well that was pretty straightforward, and it will be enough for most
# people's needs, but debconf's database drivers can be used to do much
# more interesting things. For example, suppose you want to use config
# data from another host, which is mounted over nfs or perhaps the database
# is accessed via LDAP. You don't want to write to the remote debconf database,
# just read from it, so you still need a local database for local changes.
#
# A remote NFS mounted database, read-only. It is optional; if debconf
# fails to use it it will not abort.
#Name: remotedb
#Driver: DirTree
#Directory: /mnt/otherhost/var/cache/debconf/config
#Readonly: true
#Required: false
#
# A remote LDAP database. It is also read-only. The password is really
# only necessary if the database is not accessible anonymously.
# Option KeyByKey instructs the backend to retrieve keys from the LDAP
# server individually (when they are requested), instead of loading all
# keys at startup. The default is 0, and should only be enabled if you
# want to track accesses to individual keys on the LDAP server side.
#Name: remotedb
#Driver: LDAP
#Server: remotehost
#BaseDN: cn=debconf,dc=domain,dc=com
#BindDN: uid=admin,dc=domain,dc=com
#BindPasswd: secret
#KeyByKey: 0
#
# A stack consisting of two databases. Values will be read from
# the first database in the stack to contain a value. In this example,
# writes always go to the first database.
#Name: fulldb
#Driver: Stack
#Stack: configdb, remotedb
#
# In this example, we'd use Config: fulldb at the top of the file
# to make it use the combination of the databases.
#
# Even more complex and interesting setups are possible, see the
# debconf.conf(5) page for details.
42 changes: 25 additions & 17 deletions base_os_nightly_full/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
FROM ghcr.io/inti-cmnb/base_os:latest_nightly
MAINTAINER Salvador E. Tropea <[email protected]>
LABEL Description="Debian with all tools for KiBot (nightly)"
LABEL org.opencontainers.image.description "Debian with all tools for KiBot (nightly)"
LABEL Description="Debian with all tools for KiBot"
LABEL org.opencontainers.image.description "Debian with all tools for KiBot"

USER root
RUN apt-get update && \
apt-get -y install --no-install-recommends flake8 \
python3-pytest python3-pytest-xdist \
Expand All @@ -14,27 +15,34 @@ RUN apt-get update && \
zbar-tools \
procps \
fonts-dejavu \
xlsx2csv && \
xlsx2csv gnome-themes-extra-data && \
echo "Pull xdg-utils, but without recommendations" && \
apt-get -y install --no-install-recommends xdg-utils libxkbcommon0 && \
apt-get -y install pandoc texlive-latex-base texlive-latex-recommended && \
apt-get -y install curl && \
apt-get -y install python3-coverage && \
echo "ODBC support (for KiCad 7+) and GIT LFS" && \
apt-get -y install libodbc1 libsqliteodbc git-lfs && \
echo "Install Coveralls helpers (KiBot coverage)" && \
apt-get -y install curl python3-coverage && \
dl_deb.py set-soft/coveralls-python && \
apt -y install --no-install-recommends ./*.deb && \
apt-get -y install --no-install-recommends ./*.deb && \
rm *.deb && \
apt-get -y install --no-install-recommends xz-utils wget git-lfs && \
wget https://mirrors.ocf.berkeley.edu/blender/release/Blender3.4/blender-3.4.1-linux-x64.tar.xz && \
tar xvf blender-3.4.1-linux-x64.tar.xz --strip-components=1 -C /usr/bin/ && \
rm blender-3.4.1-linux-x64.tar.xz && \
apt-get -y remove wget xz-utils && \
apt-get -y autoremove && \
rm -rf /var/lib/apt/lists/* /var/cache/debconf/templates.dat-old /var/lib/dpkg/status-old
RUN echo "Install plug-in deps: pillow and skia-python (pip, numpy, etc.)" && \

RUN echo "Install Blender" && \
apt-get update && \
apt-get -y install --no-install-recommends xz-utils wget && \
wget https://mirrors.ocf.berkeley.edu/blender/release/Blender3.5/blender-3.5.1-linux-x64.tar.xz && \
tar xvf blender-3.5.1-linux-x64.tar.xz --strip-components=1 -C /usr/bin/ && \
rm blender-3.5.1-linux-x64.tar.xz && \
apt-get -y remove xz-utils wget && \
apt-get -y autoremove && \
rm -rf /var/lib/apt/lists/* /var/cache/debconf/templates.dat-old /var/lib/dpkg/status-old

RUN echo "Install blender plug-in deps: pillow and skia-python (pip, numpy, etc.)" && \
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py && \
/usr/bin/3.4/python/bin/python3.10 get-pip.py && \
/usr/bin/3.4/python/bin/python3.10 -m pip install numpy==1.23.1 && \
/usr/bin/3.4/python/bin/python3.10 -m pip install pillow && \
/usr/bin/3.4/python/bin/python3.10 -m pip install skia-python && \
/usr/bin/3.5/python/bin/python3.10 get-pip.py && \
/usr/bin/3.5/python/bin/python3.10 -m pip install numpy && \
/usr/bin/3.5/python/bin/python3.10 -m pip install pillow && \
/usr/bin/3.5/python/bin/python3.10 -m pip install skia-python && \
rm -rf get-pip.py && \
rm -rf /root/.cache/pip/
2 changes: 1 addition & 1 deletion base_os_nightly_full/build.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/sh
set -e
docker build -f Dockerfile -t ghcr.io/inti-cmnb/base_os_full:latest_nightly .
TG1=`docker run --rm ghcr.io/inti-cmnb/base_os_full:latest_nightly /bin/bash -c "grep DISTRIB_CODENAME /etc/lsb-release | sed s/DISTRIB_CODENAME=//" | tr -d '\n'`
TG1=d`docker run --rm ghcr.io/inti-cmnb/base_os_full:latest_nightly cat /etc/debian_version | tr -d '\n'`
TG2=b`docker run --rm ghcr.io/inti-cmnb/base_os_full:latest_nightly /bin/bash -c "ls -d /usr/bin/?.? | tr -d '\n' | tail -c 3"`
docker tag ghcr.io/inti-cmnb/base_os_full:latest_nightly ghcr.io/inti-cmnb/base_os_full:${TG1}_${TG2}
docker push ghcr.io/inti-cmnb/base_os_full:${TG1}_${TG2}
Expand Down
13 changes: 13 additions & 0 deletions base_os_nightly_full/run_shell_same_user.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/sh
export USER_ID=$(id -u)
export GROUP_ID=$(id -g)
docker run --rm -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY \
--user $USER_ID:$GROUP_ID \
--env NO_AT_BRIDGE=1 \
--workdir="/home/$USER" \
--volume="/etc/group:/etc/group:ro" \
--volume="/home/$USER:/home/$USER:rw" \
--volume="/etc/passwd:/etc/passwd:ro" \
--volume="/etc/shadow:/etc/shadow:ro" \
--volume="/home/$USER:/home/$USER:rw" \
ghcr.io/inti-cmnb/base_os_nightly:latest_nightly /bin/bash
13 changes: 1 addition & 12 deletions nightly_full/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,6 @@ LABEL org.opencontainers.image.description "KiCad nightly on Ubuntu + heavy tool

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Etc/UTC
ENV LD_LIBRARY_PATH="/usr/lib/kicad-nightly/lib/x86_64-linux-gnu/:/usr/lib/kicad-nightly/lib/"
ENV KICAD_PATH="/usr/share/kicad-nightly"
ENV PYTHONPATH="/usr/lib/kicad-nightly/local/lib/python3.11/dist-packages"

RUN apt-get update && \
apt-get -y install --no-install-recommends kicad-nightly kicad-nightly-templates kicad-nightly-libraries kicad-nightly-symbols kicad-nightly-footprints && \
apt-get -y autoremove && \
rm -rf /var/lib/apt/lists/* /var/cache/debconf/templates.dat-old /var/lib/dpkg/status-old && \
rm -rf /usr/share/icons/Adwaita/ /*.deb
COPY kicad_3d_install.sh kicad_version.py /usr/bin/
# Make the nightly the main KiCad
RUN ln -s /usr/bin/kicad-cli-nightly /usr/bin/kicad-cli && \
ln -s /usr/bin/pcbnew-nightly /usr/bin/pcbnew && \
ln -s /usr/bin/eeschema-nightly /usr/bin/eeschema
COPY images.tar.gz /usr/share/kicad/resources/
2 changes: 1 addition & 1 deletion nightly_full/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ set -e
cp ../kicad_version.py .
docker build -f Dockerfile -t ghcr.io/inti-cmnb/kicad_debian:nightly_full .
TG1=`docker run --rm ghcr.io/inti-cmnb/kicad_debian:nightly_full kicad_version.py`
TG2=`docker run --rm ghcr.io/inti-cmnb/kicad_debian:nightly_full /bin/bash -c "grep DISTRIB_CODENAME /etc/lsb-release | sed s/DISTRIB_CODENAME=//" | tr -d '\n'`
TG2=d`docker run --rm ghcr.io/inti-cmnb/kicad_debian:nightly_full cat /etc/debian_version | tr -d '\n'`
TG3=b`docker run --rm ghcr.io/inti-cmnb/kicad_debian:nightly_full /bin/bash -c "blender --version | head -n 1 | tr -d 'Blender '"`
docker tag ghcr.io/inti-cmnb/kicad_debian:nightly_full ghcr.io/inti-cmnb/kicad_debian:${TG1}_${TG2}_${TG3}
docker push ghcr.io/inti-cmnb/kicad_debian:${TG1}_${TG2}_${TG3}
Expand Down
Binary file added nightly_full/images.tar.gz
Binary file not shown.
3 changes: 2 additions & 1 deletion nightly_full/run_kicad_same_user.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,5 @@ docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY \
--volume="/etc/passwd:/etc/passwd:ro" \
--volume="/etc/shadow:/etc/shadow:ro" \
--volume="/home/$USER:/home/$USER:rw" \
ghcr.io/inti-cmnb/kicad_debian:nightly_full kicad-nightly
ghcr.io/inti-cmnb/kicad_debian:nightly_full kicad
# kicad/kicad:nightly kicad

0 comments on commit 75c2518

Please sign in to comment.