feat: expand ci artifact catalog

This commit is contained in:
Codex
2026-05-20 01:20:03 +00:00
parent e0d38d7172
commit 5bb44c9a30
11 changed files with 810 additions and 216 deletions
@@ -320,6 +320,10 @@ spec:
type: string
- name: revision
type: string
- name: dockerfile
type: string
- name: image-repository
type: string
- name: app-image
type: string
default: unidesk-code-queue:dev
@@ -370,10 +374,14 @@ spec:
script: |
#!/bin/sh
set -eu
dockerfile="$(params.dockerfile)"
case "$(params.revision)" in
[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]) ;;
*) echo "backend_core_artifact_revision_must_be_full_sha=$(params.revision)" >&2; exit 2 ;;
esac
case "$dockerfile" in
/*|*..*|""|*latest*) echo "backend_core_artifact_dockerfile_invalid=$dockerfile" >&2; exit 2 ;;
esac
mkdir -p "$(workspaces.source.path)/backend-core-artifact-repo"
find "$(workspaces.source.path)/backend-core-artifact-repo" -mindepth 1 -maxdepth 1 -exec rm -rf {} +
case "$(params.source-host-path)" in
@@ -387,9 +395,10 @@ spec:
test "$prepared_commit" = "$(params.revision)"
cp -a "$source_dir/." "$(workspaces.source.path)/backend-core-artifact-repo/"
cd "$(workspaces.source.path)/backend-core-artifact-repo"
test -f src/components/backend-core/Dockerfile
test -f "$dockerfile"
test -d src/components/backend-core/src
printf '%s\n' "$prepared_commit" | tee "$(workspaces.source.path)/backend-core-artifact-commit.txt"
printf '%s\n' "$dockerfile" | tee "$(workspaces.source.path)/backend-core-artifact-dockerfile.txt"
- name: build-and-push
image: "$(params.app-image)"
imagePullPolicy: Never
@@ -420,11 +429,16 @@ spec:
#!/usr/bin/env bash
set -euo pipefail
commit="$(cat "$(workspaces.source.path)/backend-core-artifact-commit.txt")"
dockerfile="$(cat "$(workspaces.source.path)/backend-core-artifact-dockerfile.txt")"
registry="$(params.registry)"
image_repository="$(params.image-repository)"
test "$registry" = "127.0.0.1:5000" || { echo "backend_core_artifact_registry_must_be_d601_loopback=$registry" >&2; exit 2; }
local_image="unidesk/backend-core:$commit"
registry_image="$registry/unidesk/backend-core:$commit"
repository="$registry/unidesk/backend-core"
case "$image_repository" in
""|/*|*..*|*:*|*@*|*latest*|*[!a-z0-9._/-]*) echo "backend_core_artifact_image_repository_invalid=$image_repository" >&2; exit 2 ;;
esac
local_image="$image_repository:$commit"
registry_image="$registry/$image_repository:$commit"
repository="$registry/$image_repository"
command -v docker
docker version >/dev/null
docker run --rm --network host rancher/mirrored-library-busybox:1.36.1 wget -q -O- "http://$registry/v2/" >/dev/null
@@ -437,10 +451,10 @@ spec:
--label "unidesk.ai/service-id=backend-core" \
--label "unidesk.ai/source-repo=$(params.repo-url)" \
--label "unidesk.ai/source-commit=$commit" \
--label "unidesk.ai/dockerfile=src/components/backend-core/Dockerfile" \
--label "unidesk.ai/dockerfile=$dockerfile" \
-t "$local_image" \
-t "$registry_image" \
-f src/components/backend-core/Dockerfile \
-f "$dockerfile" \
.
actual_commit="$(docker image inspect "$registry_image" --format '{{ index .Config.Labels "unidesk.ai/source-commit" }}')"
test "$actual_commit" = "$commit"
@@ -453,14 +467,14 @@ spec:
printf '%s' "backend-core" > "$(results.backend_core_artifact_service_id.path)"
printf '%s' "$commit" > "$(results.backend_core_artifact_source_commit.path)"
printf '%s' "$(params.repo-url)" > "$(results.backend_core_artifact_source_repo.path)"
printf '%s' "src/components/backend-core/Dockerfile" > "$(results.backend_core_artifact_dockerfile.path)"
printf '%s' "$dockerfile" > "$(results.backend_core_artifact_dockerfile.path)"
printf '%s' "$registry" > "$(results.backend_core_artifact_registry.path)"
printf '%s' "$repository" > "$(results.backend_core_artifact_repository.path)"
printf '%s' "$registry_image" > "$(results.backend_core_artifact_image.path)"
printf '%s' "$commit" > "$(results.backend_core_artifact_tag.path)"
printf '%s' "$digest" > "$(results.backend_core_artifact_digest.path)"
printf '%s' "$digest_ref" > "$(results.backend_core_artifact_digest_ref.path)"
printf 'backend_core_artifact_service_id=backend-core\nbackend_core_artifact_image=%s\nbackend_core_artifact_repository=%s\nbackend_core_artifact_tag=%s\nbackend_core_artifact_digest=%s\nbackend_core_artifact_digest_ref=%s\nbackend_core_artifact_source_commit=%s\nbackend_core_artifact_source_repo=%s\nbackend_core_artifact_dockerfile=src/components/backend-core/Dockerfile\nbackend_core_artifact_registry=%s\nbackend_core_artifact_repo_digests=%s\n' "$registry_image" "$repository" "$commit" "$digest" "$digest_ref" "$commit" "$(params.repo-url)" "$registry" "$repo_digests"
printf 'backend_core_artifact_service_id=backend-core\nbackend_core_artifact_image=%s\nbackend_core_artifact_repository=%s\nbackend_core_artifact_tag=%s\nbackend_core_artifact_digest=%s\nbackend_core_artifact_digest_ref=%s\nbackend_core_artifact_source_commit=%s\nbackend_core_artifact_source_repo=%s\nbackend_core_artifact_dockerfile=%s\nbackend_core_artifact_registry=%s\nbackend_core_artifact_repo_digests=%s\n' "$registry_image" "$repository" "$commit" "$digest" "$digest_ref" "$commit" "$(params.repo-url)" "$dockerfile" "$registry" "$repo_digests"
---
apiVersion: tekton.dev/v1
kind: Pipeline
@@ -478,6 +492,12 @@ spec:
default: https://github.com/pikasTech/unidesk
- name: revision
type: string
- name: dockerfile
type: string
default: src/components/backend-core/Dockerfile
- name: image-repository
type: string
default: unidesk/backend-core
- name: app-image
type: string
default: unidesk-code-queue:dev
@@ -497,6 +517,10 @@ spec:
value: "$(params.repo-url)"
- name: revision
value: "$(params.revision)"
- name: dockerfile
value: "$(params.dockerfile)"
- name: image-repository
value: "$(params.image-repository)"
- name: app-image
value: "$(params.app-image)"
- name: registry
@@ -525,6 +549,8 @@ spec:
type: string
- name: dockerfile
type: string
- name: image-repository
type: string
- name: app-image
type: string
default: unidesk-code-queue:dev
@@ -607,7 +633,6 @@ spec:
cp -a "$source_dir/." "$(workspaces.source.path)/user-service-artifact-repo/"
cd "$(workspaces.source.path)/user-service-artifact-repo"
test -f "$dockerfile"
test -d "$(dirname "$dockerfile")/src"
printf '%s\n' "$prepared_commit" | tee "$(workspaces.source.path)/user-service-artifact-commit.txt"
printf '%s\n' "$service_id" | tee "$(workspaces.source.path)/user-service-artifact-service-id.txt"
printf '%s\n' "$dockerfile" | tee "$(workspaces.source.path)/user-service-artifact-dockerfile.txt"
@@ -644,13 +669,17 @@ spec:
service_id="$(cat "$(workspaces.source.path)/user-service-artifact-service-id.txt")"
dockerfile="$(cat "$(workspaces.source.path)/user-service-artifact-dockerfile.txt")"
registry="$(params.registry)"
image_repository="$(params.image-repository)"
test "$registry" = "127.0.0.1:5000" || { echo "user_service_artifact_registry_must_be_d601_loopback=$registry" >&2; exit 2; }
case "$image_repository" in
""|/*|*..*|*:*|*@*|*latest*|*[!a-z0-9._/-]*) echo "user_service_artifact_image_repository_invalid=$image_repository" >&2; exit 2 ;;
esac
case "$commit" in
[0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f][0-9a-f]) ;;
*) echo "user_service_artifact_commit_invalid=$commit" >&2; exit 2 ;;
esac
local_image="unidesk/$service_id:$commit"
repository="$registry/unidesk/$service_id"
local_image="$image_repository:$commit"
repository="$registry/$image_repository"
registry_image="$repository:$commit"
command -v docker
docker version >/dev/null
@@ -711,6 +740,8 @@ spec:
type: string
- name: dockerfile
type: string
- name: image-repository
type: string
- name: app-image
type: string
default: unidesk-code-queue:dev
@@ -734,6 +765,8 @@ spec:
value: "$(params.service-id)"
- name: dockerfile
value: "$(params.dockerfile)"
- name: image-repository
value: "$(params.image-repository)"
- name: app-image
value: "$(params.app-image)"
- name: registry