Pengenalan
Dalam artikel ini, saya akan menjelaskan secara rinci mengenai integrasi Black dengan GitHub Actions.
Menyiapkan GitHub Action untuk Black
Untuk menyiapkan GitHub Action yang menggunakan Black untuk memformat kode Python Anda, ikuti langkah-langkah berikut:
- Buat File Workflow
Di repositori Anda, buat direktori dengan nama .github
, dan di dalamnya, buat direktori lain dengan nama workflows
. Di dalam direktori workflows
, buat file baru dengan nama black.yml
. File ini akan mendefinisikan workflow.
- Definisikan Workflow
Pada file black.yml
, tentukan workflow-nya. Berikut contoh konfigurasi workflow:
name: Pemformatan Kode dengan Black
on: [push, pull_request]
jobs:
format:
runs-on: ubuntu-latest
steps:
- name: Periksa kode
uses: actions/checkout@v2
- name: Siapkan Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Pasang Black
run: pip install black
- name: Periksa pemformatan kode dengan Black
run: black --check .
Mari kita bahas apa yang dilakukan konfigurasi ini:
- Workflow ini diberi nama "Pemformatan Kode dengan Black".
- Workflow ini akan berjalan saat terjadi peristiwa
push
danpull_request
. - Terdapat satu pekerjaan (job) dengan nama
format
. - Pekerjaan ini berjalan pada versi Ubuntu terbaru.
- Workflow ini akan memeriksa kode Anda.
- Mengatur Python versi 3.x.
- Memasang Black.
- Menjalankan Black dalam mode periksa untuk memeriksa apakah kode diformat dengan benar.
- Commit dan Push File Workflow
Commit file .github/workflows/black.yml
ke repositori Anda dan push ke GitHub.
$ git add .github/workflows/black.yml
$ git commit -m "Add Black formatting check workflow"
$ git push
Mengelola Hasil Workflow
Setelah Anda melakukan push pada file workflow, GitHub Actions akan mulai menjalankan workflow pada peristiwa yang telah ditentukan (misalnya, push dan pull request pada contoh ini). Jika Black menemukan kode yang tidak diformat dengan benar, workflow akan gagal.
- Jika workflow gagal, Anda harus menjalankan Black secara lokal untuk memformat kode, melakukan commit perubahan, dan melakukan push.
$ black .
$ git add .
$ git commit -m "Format code with Black"
$ git push
- Jika workflow berhasil, berarti kode Anda telah diformat dengan benar sesuai dengan aturan Black.
Mengotomatiskan Pemformatan Kode
Dalam beberapa kasus, Anda mungkin ingin mengotomatiskan proses pemformatan kode dengan Black sebagai bagian dari workflow GitHub Actions. Ini berarti, selain memeriksa apakah kode sesuai dengan gaya Black, workflow akan secara otomatis memformat kode tersebut dan melakukan push perubahan kembali ke repositori.
Meskipun pendekatan ini dapat menghemat waktu, penting untuk menggunakannya dengan hati-hati. Mengirim perubahan secara otomatis ke repositori dapat menghasilkan hasil yang tidak terduga, terutama jika ada banyak kontributor yang sedang bekerja pada proyek tersebut secara bersamaan.
Berikut adalah langkah-langkah untuk mengatur GitHub Action untuk pemformatan kode otomatis:
- Buat Personal Access Token (PAT)
Untuk melakukan push perubahan dari workflow kembali ke repositori Anda, Anda memerlukan Personal Access Token (PAT) GitHub. PAT akan memiliki izin untuk melakukan tindakan atas nama pengguna GitHub Anda.
Untuk membuat PAT, pergi ke Pengaturan GitHub Anda, kemudian pilih ""Developer settings" > "Personal access tokens". Klik "Generate new token", beri token nama yang deskriptif, dan pilih izin yang diperlukan. Untuk kasus penggunaan ini, Anda setidaknya memerlukan izin repo
. Klik "Generate token" dan pastikan untuk menyimpan token tersebut di tempat yang aman - Anda tidak akan dapat melihatnya lagi.
- Tambahkan PAT sebagai Secret
Selanjutnya, Anda perlu menambahkan PAT sebagai secret (rahasia) ke repositori Anda agar dapat diakses oleh GitHub Action. Pergi ke pengaturan repositori Anda, kemudian pilih "Secrets" > "New repository secret". Masukkan nama untuk secret (misalnya BLACK_FORMATTER_TOKEN
) dan tempelkan PAT Anda sebagai nilai.
- Modifikasi File Workflow
Sesuaikan file workflow Anda untuk memformat kode dengan Black dan melakukan push perubahan jika diperlukan. Berikut adalah contoh workflow yang telah dimodifikasi:
name: Automated Code Formatting with Black
on: [push, pull_request]
jobs:
format:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
token: ${{ secrets.BLACK_FORMATTER_TOKEN }} # Use the PAT to check out code
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Install Black
run: pip install black
- name: Format code with Black
run: black .
- name: Commit and push changes
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git commit -am "Format code with Black" || exit 0 # The exit 0 is used to prevent the workflow from failing if no changes are made
git push
- Commit dan Push File Workflow
Commit file .github/workflows/black.yml
yang telah dimodifikasi ke repositori Anda dan push ke GitHub.
$ git add .github/workflows/black.yml
$ git commit -m "Modify workflow for automated formatting"
$ git push
Setelah langkah-langkah ini, workflow tidak hanya akan memeriksa pemformatan kode, tetapi juga secara otomatis memformat kode dan melakukan push perubahan kembali ke repositori jika diperlukan.