refactor: split ci.yml into branch-specific orchestrators, extract version check
- ci.yml: pure dispatch (Feature → ci-feature, Main → ci-main), 18 lines - ci-feature.yml (new): load-config → quality-gate - ci-main.yml (new): load-config → check-version → quality-gate → docker-build-push - check-version.yml (new): provider workflow for artifact existence check and version calculation - docker-build-push.yml (renamed from build_publish-artifact.yml): - removed check job, quality-gate block, gatekeeper logic, build-context artifact - version passed as input, simplified needs chain (build → push → tag-commit) - fixed consumer→provider checkout pattern (.ci/scripts/)
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
name: CI Main
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
jobs:
|
||||
load-config:
|
||||
name: Load gitea-env.conf to pipeline env
|
||||
uses: niko/gitea-ci-library/.gitea/workflows/config-provider.yml@main
|
||||
with:
|
||||
config_path: .gitea/workflows/gitea-env.conf
|
||||
|
||||
check-version:
|
||||
name: Check existing artifact
|
||||
needs: [load-config]
|
||||
uses: niko/gitea-ci-library/.gitea/workflows/check-version.yml@feature/docker-kuntoon
|
||||
secrets: inherit
|
||||
with:
|
||||
env_json: ${{ needs.load-config.outputs.env_json }}
|
||||
|
||||
quality-gate:
|
||||
name: Quality Gate
|
||||
needs: [load-config, check-version]
|
||||
if: needs.check-version.outputs.artifact_exists != 'true'
|
||||
uses: niko/gitea-ci-library/.gitea/workflows/quality-gate.yml@main
|
||||
secrets: inherit
|
||||
with:
|
||||
env_json: ${{ needs.load-config.outputs.env_json }}
|
||||
bats-image: bats/bats:latest
|
||||
cucumber-node-image: node:22
|
||||
|
||||
build-push:
|
||||
name: Build & Push Docker
|
||||
needs: [load-config, check-version, quality-gate]
|
||||
if: needs.check-version.outputs.artifact_exists != 'true'
|
||||
uses: niko/gitea-ci-library/.gitea/workflows/docker-build-push.yml@feature/docker-kuntoon
|
||||
secrets: inherit
|
||||
with:
|
||||
env_json: ${{ needs.load-config.outputs.env_json }}
|
||||
version: ${{ needs.check-version.outputs.version }}
|
||||
Reference in New Issue
Block a user