Apa itu Tindakan dalam Github Actions
Tindakan (actions) dalam Github Actions adalah tugas atau operasi individu yang dapat dieksekusi sebagai bagian dari alur kerja. Tindakan adalah blok bangunan dari alur kerja dan dapat dikombinasikan dengan berbagai cara untuk membuat pipa yang kompleks dan efisien untuk proyek Anda. Dengan menghubungkan beberapa tindakan, Anda dapat mengotomatisasi proses kompleks seperti membangun, menguji, dan mendeploy kode Anda.
Jenis-Jenis Tindakan
Berikut adalah berbagai jenis tindakan yang tersedia untuk digunakan dalam alur kerja Github Actions Anda.
GitHub Marketplace Actions
GitHub Marketplace adalah pusat utama untuk tindakan yang dikontribusikan oleh komunitas dan dapat diintegrasikan dengan cepat ke dalam alur kerja Anda.
Tindakan-tindakan ini mencakup berbagai kasus penggunaan, seperti code linting, pengujian, deployment, dan monitoring. Untuk menyertakan tindakan dari Github Marketplace ke dalam alur kerja Anda, Anda perlu merujuknya di file alur kerja Anda menggunakan sintaks berikut:
steps:
- name: My Step
uses: owner/repository@version
Sebagai contoh, untuk menggunakan tindakan actions/checkout
, Anda akan menyertakan hal berikut dalam file alur kerja Anda:
steps:
- name: Checkout code
uses: actions/checkout@v2
Tindakan Pihak Ketiga
Tindakan-tindakan pihak ketiga adalah tindakan yang dikembangkan oleh organisasi atau individu eksternal yang tidak di-hosting di Github Marketplace. Tindakan-tindakan ini biasanya di-hosting di repositori mereka sendiri dan dapat dimasukkan ke dalam alur kerja Anda dengan merujuk URL repositori di file alur kerja Anda:
steps:
- name: My Step
uses: user/repo@version
Pastikan untuk meninjau dokumentasi dan kode tindakan pihak ketiga sebelum menggunakannya dalam proyek Anda, karena tindakan-tindakan ini mungkin tidak memiliki tingkat dukungan atau jaminan keamanan yang sama seperti tindakan dari GitHub Marketplace.
Gambar Kontainer dari Docker Hub
Anda dapat menggunakan gambar kontainer dari Docker Hub sebagai tindakan dalam alur kerja Anda. Ini sangat berguna ketika Anda perlu menjalankan tindakan di lingkungan tertentu atau dengan seperangkat alat tertentu. Untuk menggunakan gambar kontainer dari Docker Hub, tentukan nama gambar dan versinya di file alur kerja Anda:
steps:
- name: My Step
uses: docker://image-name:image-version
Sebagai contoh, untuk menjalankan langkah menggunakan gambar Python 3.9 resmi, Anda akan menyertakan hal berikut dalam file alur kerja Anda:
steps:
- name: Run Python script
uses: docker://python:3.9
with:
args: "python my-script.py"
Membuat Tindakan Kustom Anda Sendiri
Jika Anda memerlukan tindakan kustom yang disesuaikan dengan kebutuhan proyek Anda, Anda dapat membuat tindakan Anda sendiri. Tindakan dapat ditulis dalam bahasa pemrograman apa pun dan dapat di-hosting di repositori Anda sendiri atau diterbitkan di GitHub Marketplace. Membuat tindakan kustom Anda memberikan kontrol penuh atas fungsionalitas dan implementasinya.
Untuk membuat tindakan kustom Anda, ikuti langkah-langkah berikut:
- Buat repositori baru untuk tindakan Anda.
- Tambahkan file
Dockerfile
atauaction.yml
untuk menentukan metadata dan titik masuk tindakan Anda. - Tulis kode tindakan Anda dalam bahasa pemrograman yang Anda pilih.
- Dorong kode Anda ke repositori.
- Referensikan tindakan Anda di file alur kerja Anda dengan menggunakan URL repositori.
Sebagai contoh, jika Anda membuat tindakan di repositori bernama my-org/my-action
, Anda akan menyertakannya dalam file alur kerja Anda seperti ini:
steps:
- name: My Custom Action
uses: my-org/my-action@v1
Tindakan Populer
Berikut adalah beberapa tindakan populer yang banyak digunakan di Github Actions.
- actions/checkout
Tindakanactions/checkout
digunakan untuk memeriksa kode repositori Anda, sehingga tersedia untuk digunakan dalam alur kerja Anda. Tindakan ini adalah titik awal yang penting untuk kebanyakan alur kerja, karena menyediakan akses ke basis kode untuk langkah-langkah berikutnya.
steps:
- name: Checkout code
uses: actions/checkout@v2
- actions/setup-node
Tindakanactions/setup-node
mengatur lingkungan Node.js di alur kerja Anda, memungkinkan Anda menjalankan skrip Node.js dan menggunakan alat berbasis Node.js. Tindakan ini sangat berguna untuk proyek JavaScript dan TypeScript.
steps:
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: 14
- actions/cache
Tindakanactions/cache
menyimpan cache dari dependensi dan output build untuk meningkatkan waktu eksekusi alur kerja. Tindakan ini dapat disesuaikan untuk menyimpan cache dari direktori atau file tertentu tergantung pada kebutuhan proyek Anda.
steps:
- name: Cache dependencies
uses: actions/cache@v2
with:
path: node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- actions/upload-artifact
Tindakanactions/upload-artifact
mengunggah hasil build untuk digunakan di pekerjaan lain atau untuk penyimpanan. Tindakan ini berguna untuk berbagi hasil build, seperti binary yang dikompilasi atau hasil pengujian, antara pekerjaan atau untuk penggunaan nanti.
steps:
- name: Upload build artifacts
uses: actions/upload-artifact@v2
with:
name: my-artifact
path: build/output
- actions/download-artifact
Tindakanactions/download-artifact
mengunduh hasil build dari pekerjaan sebelumnya dalam alur kerja Anda. Tindakan ini biasanya digunakan bersamaan dengan tindakanactions/upload-artifact
untuk berbagi hasil build antara pekerjaan.
steps:
- name: Download build artifacts
uses: actions/download-artifact@v2
with:
name: my-artifact
- codecov/codecov-action
Tindakancodecov/codecov-action
mengunggah laporan cakupan kode ke Codecov untuk analisis dan pelacakan. Tindakan ini berguna untuk memantau cakupan kode dari pengujian Anda dan memastikan bahwa basis kode Anda mempertahankan tingkat cakupan pengujian yang tinggi.
steps:
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage/lcov.info
Referensi