ci: Lab-CA mitliefern, 'fetch origin' einsparen (Fund aus Pipeline 159)
Der Probelauf des neuen Jobs ist an genau der Stelle gescheitert, an der man es nicht vermutet: 'git fetch gitea' lief durch (Gitea ist oeffentlich lesbar), 'git fetch origin main' dagegen brach ab mit 'unable to get local issuer certificate'. Der Runner stellt die Lab-CA nur seinem eigenen Klon-Schritt bereit, nicht dem Job-Script - der Klon oben im Log gelingt, der eigene git-Aufruf zwei Zeilen spaeter nicht. Zwei Aenderungen: 1. Die CA-Kette liegt jetzt als ci/lab-ca-chain.crt im Repo und wird per GIT_SSL_CAINFO gesetzt (CI_SERVER_TLS_CA_FILE zuerst, falls ein spaeterer Runner sie doch liefert). Ein CA-Zertifikat ist oeffentlich, kein Geheimnis - dieselbe Loesung wie im wiki-bookstack-Repo. Verifiziert: die Kette (aXionLabs Root + Intermediate) validiert https://git.lab. 2. 'git fetch origin main' faellt ganz weg. Der Runner hat main mit voller Historie schon ausgecheckt, CI_COMMIT_SHA ist dessen Stand - ein Netzaufruf weniger und eine Fehlerquelle weniger. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PKhFj1S3UdD6xL2fbWPeYj
This commit is contained in:
co-authored by
Claude Fable 5
parent
0a07da260f
commit
52573634df
+15
-7
@@ -53,17 +53,25 @@ canonize_rotation:
|
||||
script:
|
||||
- apk add --no-cache git ca-certificates >/dev/null
|
||||
- |
|
||||
# Lab-CA: der Runner legt sie je nach Version an unterschiedlichen Orten ab.
|
||||
for c in /etc/gitlab-runner/certs/git.lab.crt /etc/gitlab-runner/certs/ca.crt; do
|
||||
[ -f "$c" ] && export GIT_SSL_CAINFO="$c" && break
|
||||
done
|
||||
echo "CA: ${GIT_SSL_CAINFO:-Systemspeicher}"
|
||||
# Lab-CA. Der Runner stellt sie nur seinem eigenen Klon-Schritt bereit, nicht
|
||||
# dem Job-Script - ein 'git fetch origin' im Script scheiterte deshalb an
|
||||
# "unable to get local issuer certificate" (live gesehen, Pipeline 159).
|
||||
# Deshalb liegt die Kette hier im Repo; sie ist ein oeffentliches Zertifikat,
|
||||
# kein Geheimnis. CI_SERVER_TLS_CA_FILE zuerst, falls der Runner sie doch liefert.
|
||||
if [ -n "$CI_SERVER_TLS_CA_FILE" ] && [ -f "$CI_SERVER_TLS_CA_FILE" ]; then
|
||||
export GIT_SSL_CAINFO="$CI_SERVER_TLS_CA_FILE"
|
||||
else
|
||||
export GIT_SSL_CAINFO="$CI_PROJECT_DIR/ci/lab-ca-chain.crt"
|
||||
fi
|
||||
echo "CA: $GIT_SSL_CAINFO"
|
||||
test -f "$GIT_SSL_CAINFO" || { echo "ABBRUCH: CA-Datei fehlt."; exit 1; }
|
||||
- git config --global user.email "ci@axion1337.chat"
|
||||
- git config --global user.name "TURN-Rotation (automatische Kanonisierung)"
|
||||
- git remote add gitea https://rohana.axion1337.de/sorb/axion1337.chat-gitops.git
|
||||
- git fetch --quiet gitea
|
||||
- git fetch --quiet origin main
|
||||
- git checkout -B main origin/main
|
||||
# Kein 'fetch origin' noetig: der Runner hat main schon ausgecheckt (GIT_DEPTH 0),
|
||||
# CI_COMMIT_SHA ist der Stand von main beim Anlegen der Pipeline.
|
||||
- git checkout -B main "$CI_COMMIT_SHA"
|
||||
- |
|
||||
MERGED=0
|
||||
for ref in $(git for-each-ref --format='%(refname:short)' 'refs/remotes/gitea/turn-secret-rotation-*'); do
|
||||
|
||||
Reference in New Issue
Block a user