Pytania rekrutacyjne o CI/CD Pipeline: GitHub Actions, GitLab CI i Jenkins w 2026 roku
Przygotowanie do pytań rekrutacyjnych o pipeline CI/CD obejmujące GitHub Actions, GitLab CI i Jenkins. Zawiera praktyczne przykłady kodu, wzorce konfiguracji i najlepsze praktyki bezpieczeństwa na 2026 rok.

Pytania rekrutacyjne dotyczące pipelinów CI/CD należą do najczęściej poruszanych tematów na rozmowach DevOps w 2026 roku. GitHub Actions przetwarza obecnie ponad 71 milionów zadań dziennie i wprowadził równoległe wykonywanie kroków w czerwcu 2026, GitLab CI osiągnął wersję 19 z natywnym Secrets Manager, a Jenkins utrzymuje 28% udziału w rynku. Rekruterzy oczekują od kandydatów praktycznej biegłości we wszystkich trzech platformach.
Większość pytań rekrutacyjnych o CI/CD dzieli się na trzy kategorie: projektowanie pipeline'ów (struktura etapów i zadań), bezpieczeństwo (zarządzanie sekretami, wzmacnianie łańcucha dostaw) oraz rozwiązywanie problemów (debugowanie nieudanych buildów, optymalizacja wolnych pipeline'ów). Należy spodziewać się co najmniej jednego pytania wymagającego napisania konfiguracji pipeline'u na żywo.
Struktura workflow GitHub Actions i wyzwalacze
GitHub Actions organizuje automatyzację wokół workflow, zadań (jobs) i kroków (steps). Workflow to plik YAML przechowywany w .github/workflows/, który definiuje kiedy i jak uruchamia się automatyzacja. Każdy workflow zawiera jedno lub więcej zadań, a każde zadanie działa na oddzielnym runnerze.
Częste pytanie rekrutacyjne dotyczy wyjaśnienia relacji między wyzwalaczami on, zależnościami między zadaniami i słowem kluczowym needs.
# .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.shTen workflow demonstruje trzy kluczowe koncepcje: słowo kluczowe needs tworzy graf zależności między zadaniami, strategia matrix umożliwia równoległe testowanie na różnych wersjach Node.js, a słowo kluczowe environment wymusza ręczne zatwierdzenie przed wdrożeniem.
Równoległe kroki w GitHub Actions
GitHub Actions wprowadził równoległe wykonywanie kroków 25 czerwca 2026, realizując jedną z najczęściej zgłaszanych funkcjonalności. Wcześniej wszystkie kroki w ramach zadania wykonywały się sekwencyjnie. Nowa funkcja wprowadza cztery słowa kluczowe umożliwiające współbieżne wykonywanie w ramach pojedynczego zadania.
Równoległe zadania używają oddzielnych runnerów z izolowanymi systemami plików. Równoległe kroki współdzielą pojedynczy runner, checkout, środowisko i workspace. Rekruterzy sprawdzają, czy kandydaci rozumieją tę różnicę, ponieważ wpływa ona na cache'owanie, współdzielenie artefaktów i wykorzystanie zasobów.
# .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 deploySłowo kluczowe background: true uruchamia krok asynchronicznie i natychmiast przechodzi do następnego kroku. Słowo kluczowe wait-all wstrzymuje wykonywanie do zakończenia wszystkich poprzedzających kroków w tle. Słowo kluczowe parallel zapewnia skrócony zapis uruchamiający wiele kroków współbieżnie i czekający na zakończenie wszystkich przed kontynuacją.
Istnieją dwa dodatkowe słowa kluczowe: wait celuje w określone nazwane kroki w tle, a cancel elegancko kończy krok w tle, gdy nie jest już potrzebny (przydatne do zatrzymywania długo działających usług).
Konfiguracja pipeline'u GitLab CI z etapami
GitLab CI używa pliku .gitlab-ci.yml w katalogu głównym repozytorium. W odróżnieniu od GitHub Actions, gdzie zadania domyślnie działają niezależnie, GitLab CI organizuje zadania w etapy, które wykonują się sekwencyjnie, podczas gdy zadania w tym samym etapie działają równolegle.
Rekruterzy często proszą kandydatów o konwersję workflow GitHub Actions na pipeline GitLab CI lub odwrotnie.
# .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.shKluczowe różnice względem GitHub Actions: etapy wymuszają globalną kolejność wykonywania, słowo kluczowe parallel:matrix obsługuje buildy macierzowe, a artifacts:reports:junit integruje wyniki testów bezpośrednio w widokach merge requestów.
GitLab 19.0 (maj 2026) wprowadził Secrets Manager w otwartej becie, zapewniając natywne przechowywanie sekretów bez zewnętrznych usług takich jak HashiCorp Vault. GitLab 19.2 (lipiec 2026) udostępnił ogólnie polityki zaplanowanego wykonywania pipeline'ów, pozwalając zespołom wymuszać skany zgodności lub sprawdzanie zależności według ustalonego harmonogramu w wielu projektach z pojedynczej definicji polityki.
Gotowy na rozmowy o DevOps?
Ćwicz z naszymi interaktywnymi symulatorami, flashcards i testami technicznymi.
Składnia deklaratywnego pipeline'u Jenkins
Jenkins używa pliku Jenkinsfile przechowywanego w katalogu głównym repozytorium. Składnia deklaratywnego pipeline'u, zalecana jako domyślna w 2026 roku, zapewnia strukturalną obsługę błędów i przejrzysty układ oparty na etapach.
Częste pytanie rekrutacyjne: wyjaśnij różnicę między pipeline'ami deklaratywnymi a skryptowymi i kiedy używać którego.
// 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}"
}
}
}Pipeline'y deklaratywne wymuszają strukturę poprzez wymagane bloki pipeline, agent i stages. Dyrektywa parallel wewnątrz etapu uruchamia lint i test jednocześnie. Dyrektywa input wstrzymuje wykonywanie dla ręcznego zatwierdzenia, podobnie jak środowiska GitHub Actions i ręczne bramki GitLab. Jenkins wymaga Java 21 od stycznia 2026, więc środowiska pipeline'ów muszą uwzględniać tę zależność runtime.
Jenkins 2.574 (lipiec 2026) i 2.577 (sierpień 2026) usunęły kilka pluginów z domyślnego pliku WAR, w tym JUnit, Mailer, Matrix Authorization, Bouncycastle API i JavaMail API. Instancje bez dostępu do centrum aktualizacji muszą zainstalować te pluginy ręcznie przed aktualizacją. Usunięcie pluginu JUnit szczególnie dotyczy pipeline'ów używających kroku junit pokazanego powyżej.
Zarządzanie sekretami na platformach CI/CD
Każda rozmowa rekrutacyjna o CI/CD zawiera pytania o zarządzanie sekretami. Każda platforma obsługuje poświadczenia inaczej, a zrozumienie implikacji bezpieczeństwa ma znaczenie.
GitHub Actions przechowuje sekrety na poziomie repozytorium, środowiska lub organizacji. Sekrety są automatycznie maskowane w logach, ale obecny model scopingu ma ograniczenia. Plan bezpieczeństwa na 2026 wprowadza sekrety o ograniczonym zakresie, które wiążą poświadczenia z konkretnymi kontekstami wykonawczymi, eliminując ryzyko zbyt szerokiego dostępu.
GitLab CI zapewnia zmienne CI/CD z regułami ochrony. Chronione zmienne są wstrzykiwane tylko do pipeline'ów działających na chronionych gałęziach lub tagach. GitLab 19.0 wprowadził Secrets Manager, pozwalając zespołom przechowywać i odwoływać się do sekretów natywnie bez zewnętrznych vault'ów. Sekrety są ograniczone do projektów lub grup i dostępne tylko dla zadań, które jawnie ich żądają.
Jenkins używa pluginu Credentials z wieloma typami poświadczeń (nazwa użytkownika/hasło, klucz SSH, tekst sekretny, certyfikat). Helper credentials() w pipeline'ach deklaratywnych wiąże sekrety ze zmiennymi środowiskowymi, a Folder-level credentials ograniczają dostęp do konkretnych projektów.
Kluczowa odpowiedź rekrutacyjna: nigdy nie hardkodować sekretów w plikach pipeline'ów, zawsze używać natywnego zarządzania sekretami platformy, regularnie rotować poświadczenia i preferować krótkotrwałe tokeny nad długotrwałymi kluczami API.
Optymalizacja pipeline'u i strategie cache'owania
Wolne pipeline'y bezpośrednio wpływają na produktywność programistów. Rekruterzy sprawdzają, czy kandydaci potrafią diagnozować i naprawiać wąskie gardła wydajnościowe w systemach CI/CD.
Trzy uniwersalne techniki optymalizacji mają zastosowanie na wszystkich trzech platformach:
Cache'owanie zależności unika ponownego pobierania pakietów przy każdym uruchomieniu. GitHub Actions używa actions/cache lub wbudowanej obsługi cache w akcjach setup. GitLab CI używa cache ze strategią kluczy. Jenkins polega na persystencji workspace lub komendach stash/unstash.
Równoległe wykonywanie dzieli pracę między wiele runnerów. GitHub Actions obsługuje teraz zarówno równoległe zadania (strategia matrix), jak i równoległe kroki (słowa kluczowe background/parallel). GitLab CI używa parallel:matrix, a Jenkins dyrektywy parallel. Właściwa granularność podziału zależy od projektu: zbyt wiele równoległych zadań marnuje czas uruchamiania runnerów, zbyt mało pozostawia niewykorzystaną przepustowość.
Warunkowe wykonywanie pomija niepotrzebne etapy. Wszystkie trzy platformy to obsługują: GitHub Actions z wyrażeniami if, GitLab CI z rules, a Jenkins z dyrektywami when. Dobrze zaprojektowany pipeline pomija etapy wdrożeniowe na gałęziach funkcjonalności i pomija pełne zestawy testów przy zmianach dotyczących tylko lintingu.
Bezpieczeństwo pipeline'ów CI/CD i ochrona łańcucha dostaw
Ataki na łańcuch dostaw wymierzone w systemy CI/CD znacząco wzrosły w 2025 roku, z incydentami dotyczącymi tj-actions/changed-files i innych popularnych GitHub Actions. Pytania rekrutacyjne regularnie sprawdzają teraz strategie wzmacniania zabezpieczeń.
Pinowanie wersji akcji do konkretnych SHA commitów zamiast tagów zapobiega atakom tag-hijacking:
# .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@11bd71901bbe5b1630ceea73d27597364c9af683GitLab CI adresuje problemy łańcucha dostaw poprzez komponenty CI/CD z atestacją SLSA Level 1 (dostępne od GitLab 18.1), zapewniając jaśniejsze pochodzenie przy składaniu pipeline'ów z komponentów wielokrotnego użytku. Niezmienne tagi kontenerów (GitLab 18.2) zapobiegają podmianie obrazów po publikacji.
Dla Jenkinsa mechanizm Shared Library powinien używać dedykowanego repozytorium z ochroną gałęzi, wymaganiami code review i podpisanymi commitami. Komisja Europejska uruchomiła program bug bounty dla Jenkinsa przez YesWeHack, odzwierciedlając krytyczną rolę platformy w korporacyjnych łańcuchach dostaw.
Porównanie międzyplatformowe do przygotowania rekrutacyjnego
| Funkcja | GitHub Actions | GitLab CI | Jenkins |
|---|---|---|---|
| Plik konfiguracyjny | .github/workflows/*.yml | .gitlab-ci.yml | Jenkinsfile |
| Model wykonania | Oparty na zadaniach z równoległymi krokami | Oparty na etapach (sekwencyjne etapy) | Oparty na etapach (elastyczny) |
| Hosting runnerów | GitHub-hosted + self-hosted | GitLab.com shared + self-hosted | Tylko self-hosted |
| Przechowywanie sekretów | Sekrety repozytorium/organizacji/środowiska | Secrets Manager + zmienne CI/CD | Plugin Credentials |
| Buildy macierzowe | strategy.matrix | parallel:matrix | matrix (plugin) |
| Ręczne bramki | environment + wymagani recenzenci | when: manual | Dyrektywa input |
| Marketplace | 20 000+ Actions na Marketplace | Katalog komponentów CI/CD | 1 800+ pluginów |
| Funkcje AI | Copilot for Actions | Duo CI Expert Agent | Pluginy społeczności |
| Cennik | Darmowe dla publicznych repo, płatne za minuty dla prywatnych | 400 minut CI/CD darmowych, potem taryfy | Darmowy (open source), samodzielne zarządzanie |
Ta tabela porównawcza obejmuje najczęściej testowane różnice na rozmowach rekrutacyjnych. Pytanie uzupełniające zwykle brzmi: "Którą platformę wybrałbyś dla nowego projektu i dlaczego?" Odpowiedź zależy od istniejących narzędzi, wielkości zespołu, wymagań zgodności i tego, czy organizacja preferuje zarządzaną infrastrukturę (GitHub/GitLab) czy pełną kontrolę (Jenkins).
Źródła
- Actions steps can now be run in parallel (GitHub Changelog, czerwiec 2026)
- GitLab 19.0 release notes (GitLab Docs, maj 2026)
- GitLab 19.2 release notes (GitLab Docs, lipiec 2026)
- Jenkins Changelog (Jenkins.io, sierpień 2026)
- GitHub Actions 2026 Security Roadmap (GitHub Blog)
Przećwicz te pytania praktycznie z modułami podstawy CI/CD i GitHub Actions, lub zapoznaj się z pytaniami specyficznymi dla GitLab CI i Jenkins. Szersze przygotowanie do DevOps oferuje przewodnik po kluczowych pytaniach rekrutacyjnych DevOps, obejmujący pełny zakres tematów wykraczających poza CI/CD.
Zacznij ćwiczyć!
Sprawdź swoją wiedzę z naszymi symulatorami rozmów i testami technicznymi.
Kluczowe wnioski do rozmów rekrutacyjnych o CI/CD Pipeline
- Równoległe kroki GitHub Actions (
background,wait-all,parallel) zostały wprowadzone w czerwcu 2026, umożliwiając współbieżne wykonywanie w ramach pojedynczego zadania przy współdzieleniu runnera, checkoutu i workspace'u - GitLab 19.x wprowadził natywny Secrets Manager (otwarta beta, maj 2026) i udostępnił ogólnie polityki zaplanowanego wykonywania pipeline'ów (lipiec 2026), zmniejszając zależność od zewnętrznych narzędzi
- Jenkins 2.574+ usunął podstawowe pluginy w tym JUnit i Mailer z pliku WAR, wymagając jawnej instalacji dla instancji bez dostępu do centrum aktualizacji
- Zarządzanie sekretami to najczęściej testowany temat bezpieczeństwa na wszystkich trzech platformach: trzeba wykazać się wiedzą o sekretach z ograniczonym zakresem, chronionych zmiennych i strategiach rotacji poświadczeń
- Optymalizacja pipeline'u poprzez cache'owanie, paralelizację i warunkowe wykonywanie ma uniwersalne zastosowanie i sygnalizuje rekruterom praktyczne doświadczenie produkcyjne
- Warto przygotować co najmniej jedną działającą konfigurację pipeline'u na każdą platformę, koncentrując się na wzorcach z rzeczywistych projektów zamiast przykładów zabawkowych
Zacznij ćwiczyć!
Sprawdź swoją wiedzę z naszymi symulatorami rozmów i testami technicznymi.
Znajdziesz błąd w DevOps?
Prawdziwy fragment kodu, ukryty błąd, jedna próba dziennie. Bez konta, żeby spróbować.

Autor:
Anthony Fillion-MailletZałożyciel SharpSkill
Programista fullstack od ponad 10 lat. Prowadzi SharpSkill i odpowiada za wszystko, co się tu ukazuje.
Zaktualizowano 24 sierpnia 2026
Tagi
Udostępnij
Powiązane artykuły

Kluczowe pytania rekrutacyjne DevOps: kompletny przewodnik 2026
Przygotuj się do rozmowy kwalifikacyjnej DevOps z pytaniami o CI/CD, Kubernetes, Docker, Terraform i praktyki SRE. Szczegółowe odpowiedzi w jednym miejscu.

ArgoCD i GitOps w 2026: ciągłe wdrażanie Kubernetes oraz pytania rekrutacyjne
Kompletny przewodnik po ArgoCD i GitOps dla ciągłego wdrażania na Kubernetes w 2026 roku. Application CRDs, sync waves, ApplicationSets, porównanie ArgoCD vs Flux oraz najczęstsze pytania rekrutacyjne DevOps.

Pytania rekrutacyjne z Terraform: Kompletny przewodnik po Infrastructure as Code 2026
Pytania i odpowiedzi z rozmów rekrutacyjnych dotyczących Terraform. Zarządzanie stanem, moduły, workspaces, providery oraz najlepsze praktyki IaC zaktualizowane dla Terraform 1.14 i HCP Terraform w 2026 roku.