Dokumentasi Catatan Teknik
Wawasan, tutorial, dan catatan mendalam seputar QA automation dan rekayasa perangkat lunak.
Integrasi Playwright ke CI/CD Pipeline dengan GitHub Actions & Docker
Menjalankan pengujian otomatis secara lokal di laptop tentu bagus, tetapi pengujian yang sesungguhnya harus berjalan secara otomatis di dalam pipeline CI/CD setiap kali ada kode baru yang di-push ke repository.
1. Peran Docker dalam Testing
Menggunakan Docker memastikan bahwa lingkungan eksekusi (environment) test runner selalu konsisten, baik saat dijalankan di komputer developer maupun di cloud runner GitHub Actions, menghindari masalah klasik seperti "works on my machine".
2. Manajemen Secrets & Variables
Dalam menjalankan automated testing di lingkungan CI/CD, kita wajib menjaga keamanan data sensitif. Di sinilah peran GitHub Actions Secrets dan Variables:
- Secrets: Digunakan untuk menyimpan data rahasia yang terenkripsi seperti token akses, kredensial login QA, atau API keys (misal:
STAGING_PASSWORD). Nilainya tidak akan pernah bocor di log konsol. - Variables: Digunakan untuk menyimpan konfigurasi non-sensitif yang bersifat dinamis lintas environment, seperti
BASE_URLatau tipe browser target.
3. Contoh Konfigurasi GitHub Actions
Berikut implementasi workflow file yang mengintegrasikan environment variables dan secrets ke dalam container Docker:
name: Playwright Tests
on:
push:
branches: [ main, master ]
jobs:
test:
runs-on: ubuntu-latest
container:
image: mcr.microsoft.com/playwright:v1.40.0-jammy
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: npm ci
- name: Run Playwright tests
env:
BASE_URL: \${{ vars.STAGING_BASE_URL }}
TEST_USER_PASSWORD: \${{ secrets.STAGING_USER_PASSWORD }}
run: npx playwright test