ci: add branch tags to docker builds

This commit is contained in:
2026-06-30 01:20:51 +02:00
parent 6e2cafb206
commit eb8d1b361e
2 changed files with 222 additions and 22 deletions
+111 -11
View File
@@ -112,7 +112,7 @@ jobs:
"${manifests[@]}" "${manifests[@]}"
build: build:
if: github.event_name != 'pull_request' && github.ref_name == 'main' if: github.event_name != 'pull_request' && (github.ref_name == 'main' || github.ref_name == 'dev')
runs-on: [self-hosted, linux, arch, homelab] runs-on: [self-hosted, linux, arch, homelab]
steps: steps:
- name: Checkout repository - name: Checkout repository
@@ -191,24 +191,124 @@ jobs:
for service in "${services[@]}"; do for service in "${services[@]}"; do
case "$service" in case "$service" in
dtek_notif) dtek_notif)
docker build -t "${REGISTRY}/forust/dtek-notif:latest" dtek_notif image="${REGISTRY}/forust/dtek-notif"
docker push "${REGISTRY}/forust/dtek-notif:latest" tags=("latest")
case "${GITHUB_REF_NAME}" in
main)
tags+=("main" "prod")
;;
dev)
tags+=("dev")
;;
esac
build_args=()
for tag in "${tags[@]}"; do
build_args+=(-t "${image}:${tag}")
done
docker build "${build_args[@]}" dtek_notif
for tag in "${tags[@]}"; do
docker push "${image}:${tag}"
done
;; ;;
errorpages) errorpages)
docker compose -f errorpages/compose.yaml build errorpage image="${REGISTRY}/forust/error-pages"
docker compose -f errorpages/compose.yaml push errorpage tags=("latest")
case "${GITHUB_REF_NAME}" in
main)
tags+=("main" "prod")
;;
dev)
tags+=("dev")
;;
esac
build_args=()
for tag in "${tags[@]}"; do
build_args+=(-t "${image}:${tag}")
done
docker build "${build_args[@]}" errorpages
for tag in "${tags[@]}"; do
docker push "${image}:${tag}"
done
;; ;;
userbot) userbot)
docker compose -f userbot/compose.yaml build forust image="${REGISTRY}/forust/userbot"
docker compose -f userbot/compose.yaml push forust tags=("latest")
case "${GITHUB_REF_NAME}" in
main)
tags+=("main" "prod")
;;
dev)
tags+=("dev")
;;
esac
build_args=()
for tag in "${tags[@]}"; do
build_args+=(-t "${image}:${tag}")
done
docker build "${build_args[@]}" userbot
for tag in "${tags[@]}"; do
docker push "${image}:${tag}"
done
;; ;;
homepages) homepages)
docker compose -f homepages/compose.yaml build forust xdfnx for service in forust xdfnx; do
docker compose -f homepages/compose.yaml push forust xdfnx case "$service" in
forust)
image="${REGISTRY}/forust/forust-homepage"
;;
xdfnx)
image="${REGISTRY}/forust/xdfnx-homepage"
;;
esac
tags=("latest")
case "${GITHUB_REF_NAME}" in
main)
tags+=("main" "prod")
;;
dev)
tags+=("dev")
;;
esac
build_args=()
for tag in "${tags[@]}"; do
build_args+=(-t "${image}:${tag}")
done
docker build "${build_args[@]}" -f "homepages/Dockerfile.${service}" homepages
for tag in "${tags[@]}"; do
docker push "${image}:${tag}"
done
done
;; ;;
edu_master) edu_master)
docker compose -f edu_master/compose.yaml build session-keeper webinar-checker for service in session-keeper webinar-checker; do
docker compose -f edu_master/compose.yaml push session-keeper webinar-checker case "$service" in
session-keeper)
context="edu_master/phpsessid-bot"
image="${REGISTRY}/forust/session-keeper"
;;
webinar-checker)
context="edu_master/webinar-checker"
image="${REGISTRY}/forust/webinar-checker"
;;
esac
tags=("latest")
case "${GITHUB_REF_NAME}" in
main)
tags+=("main" "prod")
;;
dev)
tags+=("dev")
;;
esac
build_args=()
for tag in "${tags[@]}"; do
build_args+=(-t "${image}:${tag}")
done
docker build "${build_args[@]}" "$context"
for tag in "${tags[@]}"; do
docker push "${image}:${tag}"
done
done
;; ;;
esac esac
done done
+111 -11
View File
@@ -112,7 +112,7 @@ jobs:
"${manifests[@]}" "${manifests[@]}"
build: build:
if: github.event_name != 'pull_request' && github.ref_name == 'main' if: github.event_name != 'pull_request' && (github.ref_name == 'main' || github.ref_name == 'dev')
runs-on: [self-hosted, linux, arch, homelab] runs-on: [self-hosted, linux, arch, homelab]
steps: steps:
- name: Checkout repository - name: Checkout repository
@@ -191,24 +191,124 @@ jobs:
for service in "${services[@]}"; do for service in "${services[@]}"; do
case "$service" in case "$service" in
dtek_notif) dtek_notif)
docker build -t "${REGISTRY}/forust/dtek-notif:latest" dtek_notif image="${REGISTRY}/forust/dtek-notif"
docker push "${REGISTRY}/forust/dtek-notif:latest" tags=("latest")
case "${GITHUB_REF_NAME}" in
main)
tags+=("main" "prod")
;;
dev)
tags+=("dev")
;;
esac
build_args=()
for tag in "${tags[@]}"; do
build_args+=(-t "${image}:${tag}")
done
docker build "${build_args[@]}" dtek_notif
for tag in "${tags[@]}"; do
docker push "${image}:${tag}"
done
;; ;;
errorpages) errorpages)
docker compose -f errorpages/compose.yaml build errorpage image="${REGISTRY}/forust/error-pages"
docker compose -f errorpages/compose.yaml push errorpage tags=("latest")
case "${GITHUB_REF_NAME}" in
main)
tags+=("main" "prod")
;;
dev)
tags+=("dev")
;;
esac
build_args=()
for tag in "${tags[@]}"; do
build_args+=(-t "${image}:${tag}")
done
docker build "${build_args[@]}" errorpages
for tag in "${tags[@]}"; do
docker push "${image}:${tag}"
done
;; ;;
userbot) userbot)
docker compose -f userbot/compose.yaml build forust image="${REGISTRY}/forust/userbot"
docker compose -f userbot/compose.yaml push forust tags=("latest")
case "${GITHUB_REF_NAME}" in
main)
tags+=("main" "prod")
;;
dev)
tags+=("dev")
;;
esac
build_args=()
for tag in "${tags[@]}"; do
build_args+=(-t "${image}:${tag}")
done
docker build "${build_args[@]}" userbot
for tag in "${tags[@]}"; do
docker push "${image}:${tag}"
done
;; ;;
homepages) homepages)
docker compose -f homepages/compose.yaml build forust xdfnx for service in forust xdfnx; do
docker compose -f homepages/compose.yaml push forust xdfnx case "$service" in
forust)
image="${REGISTRY}/forust/forust-homepage"
;;
xdfnx)
image="${REGISTRY}/forust/xdfnx-homepage"
;;
esac
tags=("latest")
case "${GITHUB_REF_NAME}" in
main)
tags+=("main" "prod")
;;
dev)
tags+=("dev")
;;
esac
build_args=()
for tag in "${tags[@]}"; do
build_args+=(-t "${image}:${tag}")
done
docker build "${build_args[@]}" -f "homepages/Dockerfile.${service}" homepages
for tag in "${tags[@]}"; do
docker push "${image}:${tag}"
done
done
;; ;;
edu_master) edu_master)
docker compose -f edu_master/compose.yaml build session-keeper webinar-checker for service in session-keeper webinar-checker; do
docker compose -f edu_master/compose.yaml push session-keeper webinar-checker case "$service" in
session-keeper)
context="edu_master/phpsessid-bot"
image="${REGISTRY}/forust/session-keeper"
;;
webinar-checker)
context="edu_master/webinar-checker"
image="${REGISTRY}/forust/webinar-checker"
;;
esac
tags=("latest")
case "${GITHUB_REF_NAME}" in
main)
tags+=("main" "prod")
;;
dev)
tags+=("dev")
;;
esac
build_args=()
for tag in "${tags[@]}"; do
build_args+=(-t "${image}:${tag}")
done
docker build "${build_args[@]}" "$context"
for tag in "${tags[@]}"; do
docker push "${image}:${tag}"
done
done
;; ;;
esac esac
done done