Pertanyaan Wawancara CI/CD Pipeline: GitHub Actions, GitLab CI, dan Jenkins di Tahun 2026
Persiapkan pertanyaan wawancara CI/CD pipeline yang mencakup GitHub Actions, GitLab CI, dan Jenkins. Termasuk contoh kode praktis, pola konfigurasi pipeline, dan praktik terbaik keamanan untuk 2026.

Pertanyaan wawancara seputar CI/CD pipeline menjadi salah satu topik paling sering muncul dalam proses rekrutmen DevOps sepanjang tahun 2026. Dengan GitHub Actions yang kini memproses lebih dari 71 juta job per hari dan meluncurkan eksekusi step secara paralel pada Juni 2026, GitLab CI yang mencapai versi 19 dengan Secrets Manager native, serta Jenkins yang masih mempertahankan tingkat adopsi sebesar 28%, pewawancara mengharapkan kandidat mampu menunjukkan kemampuan praktis di ketiga platform tersebut.
Sebagian besar pertanyaan wawancara CI/CD termasuk dalam tiga kategori: desain pipeline (cara menyusun stage dan job), keamanan (manajemen secret dan penguatan supply chain), serta troubleshooting (debugging build yang gagal dan optimasi pipeline yang lambat). Kandidat sebaiknya mempersiapkan setidaknya satu contoh konfigurasi pipeline secara langsung.
Struktur Workflow dan Trigger pada GitHub Actions
GitHub Actions mengorganisasi otomasi melalui workflow, job, dan step. Sebuah workflow merupakan file YAML yang disimpan di direktori .github/workflows/ dan mendefinisikan kapan serta bagaimana otomasi dijalankan. Setiap workflow dapat memiliki satu atau lebih job, dan setiap job berjalan pada runner yang terpisah.
Pertanyaan wawancara yang umum meminta kandidat menjelaskan hubungan antara trigger on, dependensi antar-job, dan keyword 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.shWorkflow di atas mendemonstrasikan tiga konsep penting: keyword needs membentuk dependency graph antar-job, strategi matrix memungkinkan pengujian paralel di berbagai versi Node.js, dan keyword environment menempatkan deployment di balik persetujuan manual.
Parallel Steps pada GitHub Actions
GitHub Actions meluncurkan eksekusi step secara paralel pada 25 Juni 2026, menjawab salah satu fitur yang paling banyak diminta. Sebelumnya, semua step dalam sebuah job berjalan secara sekuensial. Fitur baru ini memperkenalkan empat keyword yang memungkinkan eksekusi konkuren dalam satu job.
Parallel jobs menggunakan runner terpisah dengan filesystem yang terisolasi. Parallel steps berbagi satu runner, checkout, environment, dan workspace. Pewawancara menguji apakah kandidat memahami perbedaan ini, karena berpengaruh pada caching, artifact sharing, dan pemanfaatan resource.
# .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 deployKeyword background: true memulai step secara asinkron dan langsung melanjutkan ke step berikutnya. Keyword wait-all menjeda eksekusi sampai semua background step selesai. Keyword parallel menyediakan shorthand yang menjalankan beberapa step secara konkuren dan menunggu semuanya selesai sebelum melanjutkan.
Dua keyword tambahan juga tersedia: wait menargetkan background step tertentu berdasarkan nama, dan cancel menghentikan background step secara graceful ketika tidak lagi diperlukan (berguna untuk menghentikan long-running service).
Konfigurasi Pipeline GitLab CI dengan Stages
GitLab CI menggunakan file .gitlab-ci.yml pada root repository. Berbeda dengan GitHub Actions di mana job berjalan secara independen secara default, GitLab CI mengorganisasi job ke dalam stages yang dieksekusi secara berurutan, sementara job dalam stage yang sama berjalan secara paralel.
Pewawancara sering meminta kandidat untuk mengonversi workflow GitHub Actions menjadi pipeline GitLab CI, atau sebaliknya.
# .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.shPerbedaan utama dengan GitHub Actions: stages mengatur urutan eksekusi secara global, keyword parallel:matrix menangani matrix build, dan artifacts:reports:junit mengintegrasikan hasil pengujian langsung ke tampilan merge request.
GitLab 19.0 (Mei 2026) memperkenalkan Secrets Manager dalam open beta, menyediakan penyimpanan secret native tanpa layanan eksternal seperti HashiCorp Vault. GitLab 19.2 (Juli 2026) menjadikan kebijakan eksekusi pipeline terjadwal tersedia secara umum, memungkinkan tim menerapkan compliance scan atau dependency check pada jadwal tetap di beberapa proyek dari satu definisi kebijakan.
Siap menguasai wawancara DevOps Anda?
Berlatih dengan simulator interaktif, flashcards, dan tes teknis kami.
Sintaks Jenkins Declarative Pipeline
Jenkins menggunakan Jenkinsfile yang disimpan di root repository. Sintaks declarative pipeline, yang direkomendasikan sebagai standar di tahun 2026, menyediakan penanganan error yang terstruktur dan tata letak berbasis stage yang jelas.
Pertanyaan wawancara yang sering muncul: jelaskan perbedaan antara declarative dan scripted pipeline, serta kapan masing-masing digunakan.
// 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}"
}
}
}Declarative pipeline menerapkan struktur melalui blok wajib pipeline, agent, dan stages. Direktif parallel di dalam stage menjalankan lint dan test secara bersamaan. Direktif input menjeda eksekusi untuk persetujuan manual, serupa dengan environment GitHub Actions dan manual gate GitLab. Jenkins membutuhkan Java 21 sejak Januari 2026, sehingga environment pipeline harus memperhitungkan dependensi runtime ini.
Jenkins 2.574 (Juli 2026) dan 2.577 (Agustus 2026) menghapus beberapa plugin dari file WAR default, termasuk JUnit, Mailer, Matrix Authorization, Bouncycastle API, dan JavaMail API. Instance tanpa akses update center harus menginstal plugin ini secara manual sebelum upgrade. Penghapusan plugin JUnit khususnya mempengaruhi pipeline yang menggunakan step junit seperti yang ditampilkan di atas.
Manajemen Secret di Berbagai Platform CI/CD
Setiap wawancara CI/CD pasti mencakup pertanyaan tentang manajemen secret. Setiap platform menangani credential dengan cara berbeda, dan pemahaman terhadap implikasi keamanannya sangatlah penting.
GitHub Actions menyimpan secret pada level repository, environment, atau organization. Secret secara otomatis disembunyikan dalam log, namun model scoping saat ini memiliki keterbatasan. Roadmap keamanan 2026 memperkenalkan scoped secret yang mengikat credential ke konteks eksekusi tertentu, mengatasi risiko akses yang terlalu luas.
GitLab CI menyediakan CI/CD variable dengan aturan proteksi. Variable yang dilindungi hanya diinjeksi ke dalam pipeline yang berjalan pada branch atau tag yang dilindungi. GitLab 19.0 memperkenalkan Secrets Manager, memungkinkan tim menyimpan dan mereferensikan secret secara native tanpa vault eksternal. Secret di-scope ke proyek atau grup dan hanya dapat diakses oleh job yang secara eksplisit memintanya.
Jenkins menggunakan plugin Credentials dengan berbagai tipe credential (username/password, SSH key, secret text, sertifikat). Helper credentials() dalam declarative pipeline mengikat secret ke variabel environment, dan credential tingkat Folder membatasi akses ke proyek tertentu.
Jawaban wawancara yang krusial: jangan pernah meng-hardcode secret dalam file pipeline, selalu gunakan manajemen secret bawaan platform, rotasi credential secara berkala, dan utamakan token berjangka pendek dibandingkan API key berjangka panjang.
Optimasi Pipeline dan Strategi Caching
Pipeline yang lambat berdampak langsung pada produktivitas developer. Pewawancara menguji apakah kandidat mampu mendiagnosis dan memperbaiki bottleneck performa dalam sistem CI/CD.
Tiga teknik optimasi universal berlaku di ketiga platform:
Dependency caching menghindari pengunduhan ulang package pada setiap run. GitHub Actions menggunakan actions/cache atau dukungan cache bawaan pada setup action. GitLab CI menggunakan cache dengan strategi key. Jenkins mengandalkan persistensi workspace atau perintah stash/unstash.
Eksekusi paralel membagi pekerjaan ke beberapa runner. GitHub Actions kini mendukung parallel jobs (strategi matrix) dan parallel steps (keyword background/parallel). GitLab CI menggunakan parallel:matrix, dan Jenkins menggunakan direktif parallel. Granularitas pembagian yang tepat bergantung pada proyek: terlalu banyak job paralel membuang waktu startup runner, terlalu sedikit membiarkan kapasitas tidak terpakai.
Eksekusi kondisional melewati stage yang tidak diperlukan. Ketiga platform mendukung hal ini: GitHub Actions dengan ekspresi if, GitLab CI dengan rules, dan Jenkins dengan direktif when. Pipeline yang dirancang dengan baik melewati stage deployment pada feature branch dan melewati perubahan khusus lint agar tidak memicu seluruh test suite.
Keamanan Pipeline CI/CD dan Perlindungan Supply Chain
Serangan supply chain yang menargetkan sistem CI/CD meningkat secara signifikan pada tahun 2025, dengan insiden yang memengaruhi tj-actions/changed-files dan GitHub Actions populer lainnya. Pertanyaan wawancara kini secara rutin menguji kandidat tentang strategi penguatan keamanan.
Pin versi action ke commit SHA tertentu, bukan tag, untuk mencegah serangan 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 menangani masalah supply chain melalui CI/CD components dengan attestasi SLSA Level 1 (tersedia sejak GitLab 18.1), memberikan provenance yang lebih jelas saat merangkai pipeline dari komponen yang dapat digunakan kembali. Tag container yang immutable (GitLab 18.2) mencegah penggantian image setelah dipublikasikan.
Untuk Jenkins, mekanisme Shared Library sebaiknya menggunakan repository khusus dengan branch protection, persyaratan code review, dan signed commit. Komisi Eropa meluncurkan Jenkins Bug Bounty Program melalui YesWeHack, mencerminkan peran kritis platform ini dalam supply chain enterprise.
Perbandingan Lintas Platform untuk Persiapan Wawancara
| Fitur | GitHub Actions | GitLab CI | Jenkins |
|---|---|---|---|
| File konfigurasi | .github/workflows/*.yml | .gitlab-ci.yml | Jenkinsfile |
| Model eksekusi | Berbasis job dengan parallel steps | Berbasis stage (stage berurutan) | Berbasis stage (fleksibel) |
| Hosting runner | GitHub-hosted + self-hosted | GitLab.com shared + self-hosted | Self-hosted saja |
| Penyimpanan secret | Secret repository/org/environment | Secrets Manager + CI/CD variable | Plugin Credentials |
| Matrix build | strategy.matrix | parallel:matrix | matrix (plugin) |
| Gerbang manual | environment + required reviewers | when: manual | Direktif input |
| Marketplace | 20.000+ Actions di Marketplace | CI/CD Components Catalog | 1.800+ plugin |
| Fitur AI | Copilot for Actions | Duo CI Expert Agent | Plugin komunitas |
| Harga | Gratis untuk repo publik, per-menit untuk privat | 400 menit CI/CD gratis, lalu bertingkat | Gratis (open source), self-managed |
Tabel perbandingan ini mencakup perbedaan yang paling sering diujikan dalam wawancara. Pertanyaan lanjutan yang biasanya muncul: "Platform mana yang akan dipilih untuk proyek baru, dan mengapa?" Jawabannya bergantung pada tooling yang sudah ada, ukuran tim, persyaratan compliance, dan apakah organisasi lebih memilih infrastruktur terkelola (GitHub/GitLab) atau kontrol penuh (Jenkins).
Sumber
- Actions steps can now be run in parallel (GitHub Changelog, Juni 2026)
- GitLab 19.0 release notes (GitLab Docs, Mei 2026)
- GitLab 19.2 release notes (GitLab Docs, Juli 2026)
- Jenkins Changelog (Jenkins.io, Agustus 2026)
- GitHub Actions 2026 Security Roadmap (GitHub Blog)
Latih pertanyaan-pertanyaan ini secara langsung dengan modul wawancara CI/CD fundamentals dan GitHub Actions, atau pelajari lebih dalam pertanyaan khusus GitLab CI dan Jenkins. Untuk persiapan DevOps yang lebih luas, panduan pertanyaan wawancara DevOps esensial mencakup cakupan topik lengkap di luar CI/CD.
Mulai berlatih!
Uji pengetahuan Anda dengan simulator wawancara dan tes teknis kami.
Poin Penting untuk Wawancara CI/CD Pipeline
- GitHub Actions parallel steps (
background,wait-all,parallel) diluncurkan pada Juni 2026, memungkinkan eksekusi konkuren dalam satu job dengan berbagi runner, checkout, dan workspace - GitLab 19.x memperkenalkan Secrets Manager native (open beta, Mei 2026) dan menjadikan kebijakan eksekusi pipeline terjadwal tersedia secara umum (Juli 2026), mengurangi ketergantungan pada tooling eksternal
- Jenkins 2.574+ melakukan unbundling plugin inti termasuk JUnit dan Mailer dari file WAR, memerlukan instalasi eksplisit untuk instance tanpa akses update center
- Manajemen secret adalah topik keamanan yang paling sering diujikan di ketiga platform: tunjukkan pengetahuan tentang scoped secret, protected variable, dan strategi rotasi credential
- Optimasi pipeline melalui caching, paralelisasi, dan eksekusi kondisional berlaku secara universal dan menandakan pengalaman produksi praktis kepada pewawancara
- Persiapkan setidaknya satu konfigurasi pipeline yang berfungsi per platform, dengan fokus pada pola dunia nyata daripada contoh sederhana
Mulai berlatih!
Uji pengetahuan Anda dengan simulator wawancara dan tes teknis kami.
Bisakah kamu menemukan bug di DevOps?
Satu potongan kode nyata, satu bug tersembunyi, satu percobaan per hari. Tanpa akun untuk mencoba.

Ditulis oleh
Anthony Fillion-MailletPendiri SharpSkill
Developer fullstack selama lebih dari 10 tahun. Ia menjalankan SharpSkill dan bertanggung jawab atas semua yang diterbitkan di sini.
Diperbarui 24 Agustus 2026
Tag
Bagikan
Artikel terkait

Keamanan Pipeline DevOps 2026: Praktik Terbaik DevSecOps dan Pertanyaan Wawancara
Panduan lengkap tentang keamanan pipeline DevOps di tahun 2026, mencakup praktik terbaik DevSecOps, implementasi CI/CD yang aman, dan pertanyaan wawancara teknis untuk persiapan karir.

Pertanyaan Wawancara DevOps Penting: Panduan Lengkap 2026
Persiapkan wawancara DevOps dengan pertanyaan wajib tentang CI/CD, Kubernetes, Docker, Terraform, dan praktik SRE. Jawaban lengkap disertakan.

ArgoCD dan GitOps untuk Kubernetes: Panduan Lengkap serta Pertanyaan Interview 2026
Pelajari cara mengimplementasikan GitOps dengan ArgoCD untuk continuous deployment di Kubernetes. Dilengkapi contoh konfigurasi, perbandingan dengan Flux, dan pertanyaan interview yang sering muncul.