Von Gast (nicht überprüft) , 29 April 2026

Der CI-Checkout

CI-Umgebungen checken Ihren Code bei jedem Job frisch aus.

Shallow Clone fur Geschwindigkeit

git clone --depth=1 https://example.com/repo.git
- uses: actions/checkout@v4
  with:
    fetch-depth: 1
git fetch --unshallow

Sparse Checkout fur Monorepos

git sparse-checkout init --cone
git sparse-checkout set apps/web shared/ui

.git uber Jobs cachen

cache:
  key: git-$CI_COMMIT_REF_SLUG
  paths:
    - .git/

Authentifiziertes Klonen

git clone https://oauth2:${TOKEN}@gitlab.com/group/repo.git

Reproduzierbare Builds

npm ci
cargo build --locked

Geanderte Dateien erkennen

BASE=$(git merge-base origin/main HEAD)
CHANGED=$(git diff --name-only $BASE)
if echo "$CHANGED" | grep -q '^apps/web/'; then
  ./scripts/test-web.sh
fi

Tag-getriebene Workflows

"Build bei jedem Push" von "Publish bei Tag" trennen.

Geheimnisse aus Git heraus

- uses: gitleaks/gitleaks-action@v2

Den Build taggen

SHA=$(git rev-parse --short HEAD)
docker build -t myapp:$SHA -t myapp:latest .