CI/CD-Pipeline Interviewfragen: GitHub Actions, GitLab CI und Jenkins in 2026

Vorbereitung auf CI/CD-Pipeline-Interviewfragen zu GitHub Actions, GitLab CI und Jenkins. Mit praktischen Codebeispielen, Pipeline-Konfigurationsmustern und Security Best Practices für 2026.

CI/CD Pipeline Interviewfragen: GitHub Actions, GitLab CI und Jenkins

CI/CD-Pipeline-Interviewfragen gehören 2026 zu den häufigsten Themen in DevOps-Bewerbungsrunden. Mit GitHub Actions, das mittlerweile über 71 Millionen Jobs pro Tag verarbeitet und im Juni 2026 die parallele Step-Ausführung eingeführt hat, GitLab CI in Version 19 mit dem nativen Secrets Manager sowie Jenkins mit einer Adoptionsrate von 28% erwarten Interviewer von Kandidaten praktische Erfahrung mit allen drei Plattformen.

Was Interviewer tatsächlich testen

Die meisten CI/CD-Interviewfragen fallen in drei Kategorien: Pipeline-Design (Strukturierung von Stages und Jobs), Security (Secrets Management, Supply-Chain-Härtung) und Troubleshooting (Debugging fehlgeschlagener Builds, Optimierung langsamer Pipelines). Mindestens eine Frage erfordert typischerweise eine Live-Pipeline-Konfiguration.

GitHub Actions Workflow-Struktur und Trigger

GitHub Actions organisiert Automatisierung um Workflows, Jobs und Steps. Ein Workflow ist eine YAML-Datei im Verzeichnis .github/workflows/, die definiert, wann und wie Automatisierung ausgeführt wird. Jeder Workflow enthält einen oder mehrere Jobs, und jeder Job läuft auf einem separaten Runner.

Eine häufige Interviewfrage bittet Kandidaten, die Beziehung zwischen on-Triggern, Job-Abhängigkeiten und dem needs-Keyword zu erklären.

yaml
# .github/workflows/ci.yml
name: CI Pipeline

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          cache: npm
      - run: npm ci
      - run: npm run lint

  test:
    needs: lint              # waits for lint to pass
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node: [20, 22]       # runs tests on both versions
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node }}
          cache: npm
      - run: npm ci
      - run: npm test

  deploy:
    needs: test
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    environment: production  # requires approval
    steps:
      - uses: actions/checkout@v4
      - run: ./deploy.sh

Dieser Workflow demonstriert drei zentrale Konzepte: Das needs-Keyword erstellt einen Abhängigkeitsgraphen zwischen Jobs, die matrix-Strategie ermöglicht paralleles Testen über Node.js-Versionen hinweg, und das environment-Keyword schützt Deployments durch manuelle Genehmigungen.

GitHub Actions Parallele Steps

GitHub Actions hat am 25. Juni 2026 die parallele Step-Ausführung eingeführt und damit eines der am häufigsten gewünschten Features umgesetzt. Zuvor liefen alle Steps innerhalb eines Jobs sequenziell. Das neue Feature führt vier Keywords ein, die gleichzeitige Ausführung innerhalb eines einzelnen Jobs ermöglichen.

Interview-Unterscheidung: parallele Jobs vs. parallele Steps

Parallele Jobs verwenden separate Runner mit isolierten Dateisystemen. Parallele Steps teilen sich einen einzelnen Runner, Checkout, Environment und Workspace. Interviewer testen, ob Kandidaten diesen Unterschied verstehen, da er sich auf Caching, Artifact-Sharing und Ressourcennutzung auswirkt.

yaml
# .github/workflows/parallel-steps.yml
name: Build with Parallel Steps

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 22
          cache: npm
      - run: npm ci

      # Run lint and typecheck in parallel
      - name: lint
        run: npm run lint
        background: true

      - name: typecheck
        run: npm run typecheck
        background: true

      - wait-all:              # wait for both to complete

      # Or use the parallel shorthand
      - parallel:
          - name: build-frontend
            run: npm run build:frontend
          - name: build-backend
            run: npm run build:backend

      - run: npm run deploy

Das background: true-Keyword startet einen Step asynchron und fährt sofort mit dem nächsten Step fort. Das wait-all-Keyword pausiert die Ausführung, bis alle vorherigen Background-Steps abgeschlossen sind. Das parallel-Keyword bietet eine Kurzform, die mehrere Steps gleichzeitig ausführt und auf deren Abschluss wartet, bevor es weitergeht.

Zwei weitere Keywords existieren: wait zielt auf spezifische benannte Background-Steps, und cancel beendet einen Background-Step kontrolliert, wenn er nicht mehr benötigt wird (nützlich zum Stoppen lang laufender Services).

GitLab CI Pipeline-Konfiguration mit Stages

GitLab CI verwendet eine .gitlab-ci.yml-Datei im Repository-Root. Anders als bei GitHub Actions, wo Jobs standardmäßig unabhängig laufen, organisiert GitLab CI Jobs in Stages, die sequenziell ausgeführt werden, während Jobs innerhalb derselben Stage parallel laufen.

Interviewer fragen Kandidaten häufig, einen GitHub Actions Workflow in eine GitLab CI Pipeline zu konvertieren oder umgekehrt.

yaml
# .gitlab-ci.yml
stages:
  - validate
  - test
  - deploy

variables:
  NODE_VERSION: "22"

lint:
  stage: validate
  image: node:${NODE_VERSION}
  cache:
    key: ${CI_COMMIT_REF_SLUG}
    paths:
      - node_modules/
  script:
    - npm ci
    - npm run lint

unit-tests:
  stage: test
  image: node:${NODE_VERSION}
  parallel:
    matrix:
      - NODE_VERSION: ["20", "22"]
  script:
    - npm ci
    - npm test
  artifacts:
    reports:
      junit: coverage/junit.xml
    expire_in: 7 days

deploy-production:
  stage: deploy
  image: alpine:latest
  rules:
    - if: $CI_COMMIT_BRANCH == "main"
      when: manual                   # manual gate
  environment:
    name: production
    url: https://app.example.com
  script:
    - ./deploy.sh

Zentrale Unterschiede zu GitHub Actions: Stages erzwingen die Ausführungsreihenfolge global, das parallel:matrix-Keyword behandelt Matrix-Builds, und artifacts:reports:junit integriert Testergebnisse direkt in Merge-Request-Ansichten.

GitLab 19.0 (Mai 2026) führte den Secrets Manager in der offenen Beta ein und ermöglicht native Secrets-Speicherung ohne externe Dienste wie HashiCorp Vault. GitLab 19.2 (Juli 2026) machte geplante Pipeline-Ausführungsrichtlinien allgemein verfügbar, sodass Teams Compliance-Scans oder Dependency-Checks in einem festen Zeitplan über mehrere Projekte hinweg von einer einzigen Policy-Definition aus durchsetzen können.

Bereit für deine DevOps-Interviews?

Übe mit unseren interaktiven Simulatoren, Flashcards und technischen Tests.

Jenkins Declarative Pipeline Syntax

Jenkins verwendet eine Jenkinsfile im Repository-Root. Die deklarative Pipeline-Syntax, die 2026 als Standard empfohlen wird, bietet strukturierte Fehlerbehandlung und ein klares Stage-basiertes Layout.

Eine häufige Interviewfrage: Erklären Sie den Unterschied zwischen deklarativen und geskripteten Pipelines und wann welche zu verwenden ist.

groovy
// Jenkinsfile
pipeline {
    agent any

    tools {
        nodejs 'node-22'       // configured in Jenkins Global Tool
    }

    environment {
        CI = 'true'
        DEPLOY_ENV = credentials('deploy-env-secret')
    }

    stages {
        stage('Install') {
            steps {
                sh 'npm ci'
            }
        }

        stage('Lint & Test') {
            parallel {             // parallel execution
                stage('Lint') {
                    steps {
                        sh 'npm run lint'
                    }
                }
                stage('Test') {
                    steps {
                        sh 'npm test'
                    }
                    post {
                        always {
                            junit 'coverage/junit.xml'
                        }
                    }
                }
            }
        }

        stage('Deploy') {
            when {
                branch 'main'
            }
            input {
                message 'Deploy to production?'
            }
            steps {
                sh './deploy.sh'
            }
        }
    }

    post {
        failure {
            mail to: 'team@example.com',
                 subject: "Build failed: ${env.JOB_NAME}",
                 body: "Check ${env.BUILD_URL}"
        }
    }
}

Deklarative Pipelines erzwingen Struktur durch erforderliche pipeline-, agent- und stages-Blöcke. Die parallel-Direktive innerhalb einer Stage führt Lint und Test gleichzeitig aus. Die input-Direktive pausiert die Ausführung für manuelle Genehmigung, ähnlich wie GitHub Actions Environments und GitLab Manual Gates. Jenkins erfordert seit Januar 2026 Java 21, sodass Pipeline-Umgebungen diese Runtime-Abhängigkeit berücksichtigen müssen.

Jenkins Plugin-Unbundling (2.574+)

Jenkins 2.574 (Juli 2026) und 2.577 (August 2026) haben mehrere Plugins aus der Standard-WAR-Datei entfernt, darunter JUnit, Mailer, Matrix Authorization, Bouncycastle API und JavaMail API. Instanzen ohne Zugang zum Update Center müssen diese Plugins vor dem Upgrade manuell installieren. Die Entfernung des JUnit-Plugins betrifft insbesondere Pipelines, die den oben gezeigten junit-Step verwenden.

Secrets Management über CI/CD-Plattformen hinweg

Jedes CI/CD-Interview enthält Fragen zum Secrets Management. Jede Plattform behandelt Credentials unterschiedlich, und das Verständnis der Sicherheitsimplikationen ist entscheidend.

GitHub Actions speichert Secrets auf Repository-, Environment- oder Organisationsebene. Secrets werden automatisch in Logs maskiert, aber das aktuelle Scoping-Modell hat Einschränkungen. Die 2026 Security Roadmap führt Scoped Secrets ein, die Credentials an explizite Ausführungskontexte binden und das Risiko zu breiter Zugriffsrechte adressieren.

GitLab CI bietet CI/CD-Variablen mit Schutzregeln. Geschützte Variablen werden nur in Pipelines injiziert, die auf geschützten Branches oder Tags laufen. GitLab 19.0 führte den Secrets Manager ein, der Teams ermöglicht, Secrets nativ ohne externe Vaults zu speichern und zu referenzieren. Secrets sind auf Projekte oder Gruppen beschränkt und nur für Jobs zugänglich, die sie explizit anfordern.

Jenkins verwendet das Credentials Plugin mit verschiedenen Credential-Typen (Benutzername/Passwort, SSH-Schlüssel, Secret Text, Zertifikat). Der credentials()-Helper in deklarativen Pipelines bindet Secrets an Umgebungsvariablen, und Folder-Level Credentials beschränken den Zugriff auf spezifische Projekte.

Die kritische Interview-Antwort: Niemals Secrets in Pipeline-Dateien hartcodieren, immer das native Secret Management der Plattform verwenden, Credentials regelmäßig rotieren und kurzlebige Tokens gegenüber langlebigen API-Keys bevorzugen.

Pipeline-Optimierung und Caching-Strategien

Langsame Pipelines beeinträchtigen direkt die Entwicklerproduktivität. Interviewer testen, ob Kandidaten Performance-Engpässe in CI/CD-Systemen diagnostizieren und beheben können.

Drei universelle Optimierungstechniken gelten für alle drei Plattformen:

Dependency Caching vermeidet das erneute Herunterladen von Paketen bei jedem Durchlauf. GitHub Actions verwendet actions/cache oder eingebaute Cache-Unterstützung in Setup-Actions. GitLab CI verwendet cache mit einer Key-Strategie. Jenkins verlässt sich auf Workspace-Persistenz oder die stash/unstash-Befehle.

Parallele Ausführung verteilt Arbeit auf mehrere Runner. GitHub Actions unterstützt jetzt sowohl parallele Jobs (matrix-Strategie) als auch parallele Steps (background/parallel-Keywords). GitLab CI verwendet parallel:matrix, und Jenkins verwendet die parallel-Direktive. Die richtige Aufteilungsgranularität hängt vom Projekt ab: Zu viele parallele Jobs verschwenden Runner-Startzeit, zu wenige lassen Kapazität ungenutzt.

Bedingte Ausführung überspringt unnötige Stages. Alle drei Plattformen unterstützen dies: GitHub Actions mit if-Ausdrücken, GitLab CI mit rules und Jenkins mit when-Direktiven. Eine gut gestaltete Pipeline überspringt Deployment-Stages auf Feature-Branches und verhindert, dass Lint-only-Änderungen vollständige Test-Suites auslösen.

CI/CD Pipeline Security und Supply Chain Protection

Supply-Chain-Angriffe auf CI/CD-Systeme nahmen 2025 signifikant zu, mit Vorfällen, die tj-actions/changed-files und andere populäre GitHub Actions betrafen. Interviewfragen behandeln nun regelmäßig Härtungsstrategien.

Pinnen Sie Action-Versionen auf spezifische Commit-SHAs statt auf Tags, um Tag-Hijacking-Angriffe zu verhindern:

yaml
# .github/workflows/secure.yml
steps:
  # Vulnerable: tag can be moved to malicious commit
  - uses: actions/checkout@v4

  # Secure: pinned to exact commit SHA
  - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683

GitLab CI adressiert Supply-Chain-Bedenken durch CI/CD Components mit SLSA Level 1 Attestierung (verfügbar seit GitLab 18.1), die klarere Herkunftsnachweise beim Zusammenstellen von Pipelines aus wiederverwendbaren Komponenten bieten. Unveränderliche Container-Tags (GitLab 18.2) verhindern Image-Ersetzung nach der Veröffentlichung.

Für Jenkins sollte der Shared Library-Mechanismus ein dediziertes Repository mit Branch-Protection, Code-Review-Anforderungen und signierten Commits verwenden. Die Europäische Kommission hat ein Jenkins Bug Bounty Programm über YesWeHack gestartet, was die kritische Rolle der Plattform in Enterprise-Supply-Chains widerspiegelt.

Plattformübergreifender Vergleich für die Interview-Vorbereitung

MerkmalGitHub ActionsGitLab CIJenkins
Konfigurationsdatei.github/workflows/*.yml.gitlab-ci.ymlJenkinsfile
AusführungsmodellJob-basiert mit parallelen StepsStage-basiert (sequenzielle Stages)Stage-basiert (flexibel)
Runner-HostingGitHub-hosted + Self-hostedGitLab.com Shared + Self-hostedNur Self-hosted
Secret-VerwaltungRepository/Org/Environment SecretsSecrets Manager + CI/CD-VariablenCredentials Plugin
Matrix Buildsstrategy.matrixparallel:matrixmatrix (Plugin)
Manuelle Gatesenvironment + Required Reviewerswhen: manualinput-Direktive
Marketplace20.000+ Actions im MarketplaceCI/CD Components Catalog1.800+ Plugins
KI-FunktionenCopilot for ActionsDuo CI Expert AgentCommunity Plugins
PreisgestaltungKostenlos für öffentliche Repos, minutenbasiert für private400 CI/CD-Minuten kostenlos, dann gestaffeltKostenlos (Open Source), selbst verwaltet

Diese Vergleichstabelle deckt die am häufigsten getesteten Unterschiede in Interviews ab. Die Folgefrage lautet typischerweise: "Welche Plattform würden Sie für ein neues Projekt wählen, und warum?" Die Antwort hängt von bestehenden Tools, Teamgröße, Compliance-Anforderungen und davon ab, ob die Organisation verwaltete Infrastruktur (GitHub/GitLab) oder volle Kontrolle (Jenkins) bevorzugt.

Quellen

Die Vorbereitung auf CI/CD-Interviews gelingt am besten durch praktische Übung mit den CI/CD-Grundlagen und den plattformspezifischen Modulen zu GitHub Actions, GitLab CI und Jenkins. Der umfassende Leitfaden zu den wichtigsten DevOps-Interviewfragen deckt weitere Themen jenseits von CI/CD ab.

Fang an zu üben!

Teste dein Wissen mit unseren Interview-Simulatoren und technischen Tests.

Kernpunkte für CI/CD-Pipeline-Interviews

  • GitHub Actions parallele Steps (background, wait-all, parallel) wurden im Juni 2026 eingeführt und ermöglichen gleichzeitige Ausführung innerhalb eines einzelnen Jobs bei gemeinsamer Nutzung von Runner, Checkout und Workspace
  • GitLab 19.x führte den nativen Secrets Manager ein (offene Beta, Mai 2026) und machte geplante Pipeline-Ausführungsrichtlinien allgemein verfügbar (Juli 2026), was die Abhängigkeit von externen Tools reduziert
  • Jenkins 2.574+ hat Core-Plugins wie JUnit und Mailer aus der WAR-Datei entfernt, was eine explizite Installation für Instanzen ohne Zugang zum Update Center erfordert
  • Secrets Management ist das am häufigsten geprüfte Sicherheitsthema über alle drei Plattformen hinweg: Kenntnisse zu Scoped Secrets, Protected Variables und Credential-Rotationsstrategien sind unverzichtbar
  • Pipeline-Optimierung durch Caching, Parallelisierung und bedingte Ausführung gilt universell und signalisiert Interviewern praktische Produktionserfahrung
  • Kandidaten sollten mindestens eine funktionsfähige Pipeline-Konfiguration pro Plattform vorbereiten und sich auf praxisnahe Muster statt auf Spielzeugbeispiele konzentrieren

Fang an zu üben!

Teste dein Wissen mit unseren Interview-Simulatoren und technischen Tests.

Tägliche Challenge

Findest du den Bug in DevOps?

Ein echter Codeausschnitt, ein versteckter Bug, ein Versuch pro Tag. Zum Ausprobieren ohne Konto.

Anthony Fillion-Maillet

Geschrieben von

Anthony Fillion-Maillet

Gründer von SharpSkill

Seit über 10 Jahren Fullstack-Entwickler. Er leitet SharpSkill und verantwortet alles, was hier erscheint.

Aktualisiert am 24. August 2026

Tags

#devops
#ci-cd
#github-actions
#gitlab-ci
#jenkins
#interview

Teilen

Verwandte Artikel