Introduce D(ocker) build definition.

Partially fix #629
This commit is contained in:
Matthieu Gautier 2023-07-26 15:09:13 +02:00
parent 07e72ffba4
commit 7e9a145bc5
2 changed files with 7 additions and 3 deletions

View File

@ -12,6 +12,7 @@ import csv, io, re
# 'P' letter means that (build) project must be publish when we do a release. # 'P' letter means that (build) project must be publish when we do a release.
# (This is used to avoid two publication of the same archive) # (This is used to avoid two publication of the same archive)
# 'S' letter means that source code must be publish (almost by definition, S should be put only with a P) # 'S' letter means that source code must be publish (almost by definition, S should be put only with a P)
# 'D' letter means we trigger the docker forkflow to build the docker image.
# If a cell contains several letters, all are done. # If a cell contains several letters, all are done.
BUILD_DEF = """ BUILD_DEF = """
| OS_NAME | PLATFORM_TARGET | libzim | libkiwix | zim-tools | kiwix-tools | kiwix-desktop | | OS_NAME | PLATFORM_TARGET | libzim | libkiwix | zim-tools | kiwix-tools | kiwix-desktop |
@ -31,7 +32,7 @@ BUILD_DEF = """
| macos | macOS_x86_64 | B | B | | | | | macos | macOS_x86_64 | B | B | | | |
---------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------
| | flatpak | | | | | BP | | | flatpak | | | | | BP |
| | native_static | d | d | dBPS | dBPS | | | | native_static | d | d | dBPSD | dBPSD | |
| | native_dyn | d | d | dB | dB | BPS | | | native_dyn | d | d | dB | dB | BPS |
| | native_mixed | BPS | BPS | | | | | | native_mixed | BPS | BPS | | | |
# libzim CI is building alpine_dyn but not us # libzim CI is building alpine_dyn but not us
@ -102,6 +103,7 @@ BUILD = "B"
PUBLISH = "P" PUBLISH = "P"
SOURCE_PUBLISH = "S" SOURCE_PUBLISH = "S"
DEPS = "d" DEPS = "d"
DOCKER = "D"
def select_build_targets(criteria): def select_build_targets(criteria):
from common import PLATFORM_TARGET, OS_NAME from common import PLATFORM_TARGET, OS_NAME

View File

@ -19,7 +19,7 @@ from common import (
notarize_macos_build, notarize_macos_build,
) )
from build_definition import select_build_targets, BUILD, PUBLISH, SOURCE_PUBLISH from build_definition import select_build_targets, BUILD, PUBLISH, SOURCE_PUBLISH, DOCKER
@ -30,8 +30,10 @@ if MAKE_RELEASE:
def release_filter(project): def release_filter(project):
return release_versions.get(project) is not None return release_versions.get(project) is not None
TARGETS = tuple(filter(release_filter, TARGETS)) TARGETS = tuple(filter(release_filter, TARGETS))
docker_trigger = select_build_targets(DOCKER)
else: else:
TARGETS = select_build_targets(BUILD) TARGETS = select_build_targets(BUILD)
docker_trigger = []
for target in TARGETS: for target in TARGETS:
run_kiwix_build(target, platform=PLATFORM_TARGET, make_release=MAKE_RELEASE) run_kiwix_build(target, platform=PLATFORM_TARGET, make_release=MAKE_RELEASE)
@ -44,7 +46,7 @@ for target in TARGETS:
archive = make_archive(target, make_release=MAKE_RELEASE) archive = make_archive(target, make_release=MAKE_RELEASE)
if archive: if archive:
upload_archive(archive, target, make_release=MAKE_RELEASE) upload_archive(archive, target, make_release=MAKE_RELEASE)
if MAKE_RELEASE and target in ("zim-tools", "kiwix-tools"): if target in docker_trigger:
trigger_docker_publish(target) trigger_docker_publish(target)
# We have few more things to do for release: # We have few more things to do for release: