Profil organisasi publik dan file default community health untuk Webekspres
Repositori publik ini adalah sumber konfigurasi tingkat organisasi untuk PT Webekspres Teknologi Indonesia. GitHub menggunakan repo bernama .github untuk menampilkan profil organisasi publik serta menyediakan file default yang otomatis berlaku di seluruh repositori organisasi yang belum memiliki file serupa.
| File / Folder | Fungsi |
|---|---|
profile/README.md |
Profil organisasi yang tampil di github.com/Webekspres |
CONTRIBUTING.md |
Panduan kontribusi dan standar engineering |
CODE_OF_CONDUCT.md |
Kode etik kolaborasi |
SECURITY.md |
Kebijakan pelaporan kerentanan keamanan |
SUPPORT.md |
Cara mendapatkan bantuan |
ISSUE_TEMPLATE/ |
Template issue default untuk repositori org |
PULL_REQUEST_TEMPLATE.md |
Template pull request default |
workflow-templates/ |
Template GitHub Actions organisasi (tombol Actions → New workflow di setiap repo) |
actions/tunggu-db/ |
Action bersama: tunggu MySQL/MariaDB/Postgres/Redis siap sebelum tes |
.github/workflows/ |
Reusable workflow build-image dan deploy-ssh yang dipanggil ci-cd.yml setiap repo |
| Template | Untuk |
|---|---|
| Webekspres CI/CD standar (repo privat) | alur utama setiap proyek: test → build image GHCR → deploy staging / production |
| Webekspres CI Laravel / Node / Python / Flutter (repo privat) | contoh job test lengkap per stack (service database, tunggu-db) untuk diisi ke ci-cd.yml |
| Webekspres Alur Branch (repo privat / repo publik) | menjaga alur fitur → dev → staging → main |
Template bertanda repo privat memakai runner organisasi dan hanya boleh dipakai di repo privat.
Repo publik selalu memakai runner GitHub (ubuntu-latest).
Setiap repo privat punya satu .github/workflows/ci-cd.yml dengan bentuk yang sama:
| Kejadian | Job |
|---|---|
PR ke dev / staging / main, push dev |
test |
push staging |
test → build (:staging, :sha-<commit>) → deploy-staging |
push main |
test → build (:latest, :sha-<commit>) → deploy-production |
Job test khas proyek dan ditulis di repo. Build dan deploy memanggil reusable workflow di repo ini:
build:
needs: test
if: github.event_name != 'pull_request' && (github.ref_name == 'staging' || github.ref_name == 'main')
uses: Webekspres/.github/.github/workflows/build-image.yml@v1
with:
environment: ${{ github.ref_name == 'main' && 'production' || 'staging' }}
deploy-staging:
needs: build
if: github.ref_name == 'staging'
uses: Webekspres/.github/.github/workflows/deploy-ssh.yml@v1
with:
environment: staging
image-tag: ${{ needs.build.outputs.tag }}
secret-prefix: STAGING_
script: |
cd /opt/app-staging && docker compose pull app && docker compose up -d app
secrets: inheritInput lengkap ada di komentar build-image.yml dan
deploy-ssh.yml.
Versi. Repo memanggil @v1. Perbaikan yang tidak mengubah input memindahkan tag v1 sehingga semua repo
langsung ikut; perubahan yang tidak kompatibel dirilis sebagai v2 dan tiap repo pindah lewat PR.
Versi runtime proyek (PHP, Node, Python, Flutter, database) tetap ditentukan di job test repo masing-masing
dan harus sama dengan versi repo, dev, dan produksi.
- uses: Webekspres/.github/actions/tunggu-db@v1
with:
type: mysql # mysql | mariadb | postgres | redis
password: rootDetail input ada di actions/tunggu-db/README.md.
Dokumentasi internal (infrastruktur, CI/runner, deploy, handover) tidak disimpan di sini karena repo ini publik.
Tempatnya di repo privat .github-private, yang juga berisi profil khusus anggota.
| Tampilan | Repositori | Visibility |
|---|---|---|
| Publik (semua pengunjung) | .github (repo ini) |
Public |
| Member (khusus anggota org) | .github-private |
Private |
Kedua repositori memiliki profile/README.md masing-masing. GitHub menampilkan versi publik dari repo ini kepada semua orang, dan versi member dari .github-private kepada anggota organisasi.