[CI/CD] Separated the docker images creation

- Now can be triggered separately
- Full and non-full images created
- More descriptive tags
- KiCad 7 included
This commit is contained in:
Salvador E. Tropea 2023-03-16 10:50:15 -03:00
parent 3bba1b06fa
commit 955bddc007
16 changed files with 201 additions and 151 deletions

44
.github/workflows/dev_images.yml vendored Normal file
View File

@ -0,0 +1,44 @@
# This workflow will create the development docker images
name: Create `dev` images
on:
repository_dispatch:
types: [create_dev]
jobs:
push_to_registry_ki5:
strategy:
matrix:
ki_release: [dev_image_k5, dev_image_k6, dev_image_k7, dev_image_k5f, dev_image_k6f, dev_image_k7f]
name: Docker ${{ matrix.ki_release }}
runs-on: ubuntu-latest
needs: test
permissions:
packages: write
contents: read
# Don't create `dev` images using the `master`
if: github.ref == 'refs/heads/dev'
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker image
run: |
cd kibot/tools/${{ matrix.ki_release }}
./build.sh

View File

@ -110,6 +110,16 @@ jobs:
#echo Disabled by now
coveralls
create_images:
name: Triggers the docker images creation
runs-on: ubuntu-latest
needs: test
if: github.ref == 'refs/heads/dev'
steps:
- name: Trigger `dev` images 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/KiBot/dispatches --data '{"event_type": "create_dev", "client_payload": {"key": "value"}, "ref": "dev"}'
consolidate_coverage:
name: Consolidate coverage data
runs-on: ubuntu-latest
@ -167,150 +177,6 @@ jobs:
name: Test_Coverage_combined
path: htmlcov
push_to_registry:
name: Docker KiCad 5 full dev
runs-on: ubuntu-latest
needs: test
permissions:
packages: write
contents: read
# Don't create `dev` images using the `master`
if: github.ref == 'refs/heads/dev'
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: |
setsoft/kicad_auto_test
ghcr.io/inti-cmnb/kicad_auto_test
ghcr.io/inti-cmnb/kicad5_auto_full
tags: |
type=raw,dev
- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
context: tools/dev_image
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
push_to_registry_k6:
name: Docker KiCad 6 full dev
runs-on: ubuntu-latest
needs: test
permissions:
packages: write
contents: read
# Don't create `dev` images using the `master`
if: github.ref == 'refs/heads/dev'
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: |
setsoft/kicad_auto_test
ghcr.io/inti-cmnb/kicad_auto_test
ghcr.io/inti-cmnb/kicad6_auto_full
tags: |
type=raw,dev_k6
- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
context: tools/dev_image_k6
push: true
tags: |
setsoft/kicad_auto_test:dev_k6
ghcr.io/inti-cmnb/kicad_auto_test:dev_k6
ghcr.io/inti-cmnb/kicad6_auto_full:dev
labels: ${{ steps.meta.outputs.labels }}
push_to_registry_ng:
name: Docker KiCad 7 full dev
runs-on: ubuntu-latest
needs: test
permissions:
packages: write
contents: read
# Don't create `dev` images using the `master`
if: github.ref == 'refs/heads/dev'
steps:
- name: Check out the repo
uses: actions/checkout@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: |
setsoft/kicad_auto_test
ghcr.io/inti-cmnb/kicad_auto_test
ghcr.io/inti-cmnb/kicad7_auto_full
tags: |
type=raw,dev_k7
- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
context: tools/dev_image_k7
push: true
tags: |
setsoft/kicad_auto_test:dev_k7
ghcr.io/inti-cmnb/kicad_auto_test:dev_k7
labels: ${{ steps.meta.outputs.labels }}
coveralls:
name: Finish Coveralls
needs: test

View File

@ -1,2 +0,0 @@
#!/bin/sh
docker build -f tools/dev_image/Dockerfile -t setsoft/kicad_auto:dev .

View File

@ -1,2 +0,0 @@
#!/bin/sh
docker build -f tools/dev_image_k6/Dockerfile -t setsoft/kicad_auto:dev_k6 .

View File

@ -1,4 +1,4 @@
FROM setsoft/kicad_auto_test:latest
FROM ghcr.io/inti-cmnb/kicad_auto:ki5
MAINTAINER Salvador E. Tropea <stropea@inti.gob.ar>
LABEL Description="KiCad 5 with KiBot and other automation scripts"

13
tools/dev_image_k5/build.sh Executable file
View File

@ -0,0 +1,13 @@
#!/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'`
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'`
TG4=b`docker run --rm ghcr.io/inti-cmnb/kicad6_auto:latest /bin/bash -c "ls -d /usr/bin/?.? | tr -d '\n' | tail -c 3"`
docker tag ghcr.io/inti-cmnb/kicad5_auto:dev ghcr.io/inti-cmnb/kicad5_auto:dev_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker tag ghcr.io/inti-cmnb/kicad5_auto:dev ghcr.io/inti-cmnb/kicad_auto:dev_k5_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad5_auto:dev_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad_auto:dev_k5_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad5_auto:dev

View File

@ -0,0 +1,22 @@
FROM ghcr.io/inti-cmnb/kicad_auto_test:ki5
MAINTAINER Salvador E. Tropea <stropea@inti.gob.ar>
LABEL Description="KiCad 5 with KiBot and other automation scripts"
RUN dpkg --remove kicost kibot && \
apt-get update && \
curl https://codeload.github.com/INTI-CMNB/KiBot/zip/refs/heads/dev --output pp.zip && \
unzip pp.zip && \
pip3 install --no-compile KiBot-dev/ && \
rm -rf KiBot-dev pp.zip && \
curl https://codeload.github.com/hildogjr/KiCost/zip/refs/heads/master --output pp.zip && \
unzip pp.zip && \
pip3 install KiCost-master/ && \
rm -rf KiCost-master pp.zip && \
rm -rf /var/lib/apt/lists/*
# kidiff depends on KiAuto
# dpkg --remove kiauto && \
# curl https://codeload.github.com/INTI-CMNB/KiAuto/zip/refs/heads/master --output pp.zip && \
# unzip pp.zip && \
# pip3 install KiAuto-master/ && \
# rm -rf KiAuto-master/ pp.zip && \

13
tools/dev_image_k5f/build.sh Executable file
View File

@ -0,0 +1,13 @@
#!/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'`
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/kicad6_auto_full:latest /bin/bash -c "ls -d /usr/bin/?.? | tr -d '\n' | tail -c 3"`
docker tag ghcr.io/inti-cmnb/kicad5_auto_full:dev ghcr.io/inti-cmnb/kicad5_auto_full:dev_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker tag ghcr.io/inti-cmnb/kicad5_auto_full:dev ghcr.io/inti-cmnb/kicad_auto_full:dev_k5_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad5_auto_full:dev_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad_auto_full:dev_k5_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad5_auto_full:dev

View File

@ -1,4 +1,4 @@
FROM setsoft/kicad_auto_test:ki6
FROM ghcr.io/inti-cmnb/kicad_auto:ki6
MAINTAINER Salvador E. Tropea <stropea@inti.gob.ar>
LABEL Description="KiCad 6 with KiBot and other automation scripts"

13
tools/dev_image_k6/build.sh Executable file
View File

@ -0,0 +1,13 @@
#!/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'`
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'`
TG4=b`docker run --rm ghcr.io/inti-cmnb/kicad6_auto:latest /bin/bash -c "ls -d /usr/bin/?.? | tr -d '\n' | tail -c 3"`
docker tag ghcr.io/inti-cmnb/kicad6_auto:dev ghcr.io/inti-cmnb/kicad6_auto:dev_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker tag ghcr.io/inti-cmnb/kicad6_auto:dev ghcr.io/inti-cmnb/kicad_auto:dev_k6_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad6_auto:dev_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad_auto:dev_k6_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad6_auto:dev

View File

@ -0,0 +1,22 @@
FROM ghcr.io/inti-cmnb/kicad_auto_test:ki6
MAINTAINER Salvador E. Tropea <stropea@inti.gob.ar>
LABEL Description="KiCad 6 with KiBot and other automation scripts"
RUN dpkg --remove kicost kibot && \
apt-get update && \
curl https://codeload.github.com/INTI-CMNB/KiBot/zip/refs/heads/dev --output pp.zip && \
unzip pp.zip && \
pip3 install --no-compile KiBot-dev/ && \
rm -rf KiBot-dev pp.zip && \
curl https://codeload.github.com/hildogjr/KiCost/zip/refs/heads/master --output pp.zip && \
unzip pp.zip && \
pip3 install KiCost-master/ && \
rm -rf KiCost-master pp.zip && \
rm -rf /var/lib/apt/lists/*
# kidiff depends on KiAuto
# dpkg --remove kiauto && \
# curl https://codeload.github.com/INTI-CMNB/KiAuto/zip/refs/heads/master --output pp.zip && \
# unzip pp.zip && \
# pip3 install KiAuto-master/ && \
# rm -rf KiAuto-master/ pp.zip && \

13
tools/dev_image_k6f/build.sh Executable file
View File

@ -0,0 +1,13 @@
#!/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'`
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:latest /bin/bash -c "ls -d /usr/bin/?.? | tr -d '\n' | tail -c 3"`
docker tag ghcr.io/inti-cmnb/kicad6_auto_full:dev ghcr.io/inti-cmnb/kicad6_auto_full:dev_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker tag ghcr.io/inti-cmnb/kicad6_auto_full:dev ghcr.io/inti-cmnb/kicad_auto_full:dev_k6_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad6_auto_full:dev_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad_auto_full:dev_k6_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad6_auto_full:dev

View File

@ -1,4 +1,4 @@
FROM setsoft/kicad_auto_test:nightly
FROM ghcr.io/inti-cmnb/kicad_auto:ki7
MAINTAINER Salvador E. Tropea <stropea@inti.gob.ar>
LABEL Description="KiCad 6 with KiBot and other automation scripts"

13
tools/dev_image_k7/build.sh Executable file
View File

@ -0,0 +1,13 @@
#!/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'`
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'`
TG4=b`docker run --rm ghcr.io/inti-cmnb/kicad7_auto:latest /bin/bash -c "ls -d /usr/bin/?.? | tr -d '\n' | tail -c 3"`
docker tag ghcr.io/inti-cmnb/kicad7_auto:dev ghcr.io/inti-cmnb/kicad7_auto:dev_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker tag ghcr.io/inti-cmnb/kicad7_auto:dev ghcr.io/inti-cmnb/kicad_auto:dev_k7_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad7_auto:dev_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad_auto:dev_k7_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad7_auto:dev

View File

@ -0,0 +1,22 @@
FROM ghcr.io/inti-cmnb/kicad_auto_test:ki7
MAINTAINER Salvador E. Tropea <stropea@inti.gob.ar>
LABEL Description="KiCad 6 with KiBot and other automation scripts"
RUN dpkg --remove kicost kibot && \
apt-get update && \
curl https://codeload.github.com/INTI-CMNB/KiBot/zip/refs/heads/dev --output pp.zip && \
unzip pp.zip && \
pip3 install --no-compile KiBot-dev/ && \
rm -rf KiBot-dev pp.zip && \
curl https://codeload.github.com/hildogjr/KiCost/zip/refs/heads/master --output pp.zip && \
unzip pp.zip && \
pip3 install KiCost-master/ && \
rm -rf KiCost-master pp.zip && \
rm -rf /var/lib/apt/lists/*
# kidiff depends on KiAuto
# dpkg --remove kiauto && \
# curl https://codeload.github.com/INTI-CMNB/KiAuto/zip/refs/heads/master --output pp.zip && \
# unzip pp.zip && \
# pip3 install KiAuto-master/ && \
# rm -rf KiAuto-master/ pp.zip && \

13
tools/dev_image_k7f/build.sh Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
set -e
docker build -f Dockerfile -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:latest /bin/bash -c "ls -d /usr/bin/?.? | tr -d '\n' | tail -c 3"`
docker tag ghcr.io/inti-cmnb/kicad7_auto_full:dev ghcr.io/inti-cmnb/kicad7_auto_full:dev_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker tag ghcr.io/inti-cmnb/kicad7_auto_full:dev ghcr.io/inti-cmnb/kicad_auto_full:dev_k7_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad7_auto_full:dev_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad_auto_full:dev_k7_${TG1}-${HASH}_${TG2}_${TG3}_${TG4}
docker push ghcr.io/inti-cmnb/kicad7_auto_full:dev