Traffine I/O

Bahasa Indonesia

2023-03-04

Tindakan dalam Github Actions

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.

https://github.com/marketplace?type=

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:

yaml
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:

yaml
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:

yaml
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:

yaml
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:

yaml
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:

  1. Buat repositori baru untuk tindakan Anda.
  2. Tambahkan file Dockerfile atau action.yml untuk menentukan metadata dan titik masuk tindakan Anda.
  3. Tulis kode tindakan Anda dalam bahasa pemrograman yang Anda pilih.
  4. Dorong kode Anda ke repositori.
  5. 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:

yaml
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
    Tindakan actions/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.
yaml
steps:
  - name: Checkout code
    uses: actions/checkout@v2
  • actions/setup-node
    Tindakan actions/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.
yaml
steps:
  - name: Set up Node.js
    uses: actions/setup-node@v2
    with:
      node-version: 14
  • actions/cache
    Tindakan actions/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.
yaml
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
    Tindakan actions/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.
yaml
steps:
  - name: Upload build artifacts
    uses: actions/upload-artifact@v2
    with:
      name: my-artifact
      path: build/output
  • actions/download-artifact
    Tindakan actions/download-artifact mengunduh hasil build dari pekerjaan sebelumnya dalam alur kerja Anda. Tindakan ini biasanya digunakan bersamaan dengan tindakan actions/upload-artifact untuk berbagi hasil build antara pekerjaan.
yaml
steps:
  - name: Download build artifacts
    uses: actions/download-artifact@v2
    with:
      name: my-artifact
  • codecov/codecov-action
    Tindakan codecov/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.
yaml
steps:
  - name: Upload coverage to Codecov
    uses: codecov/codecov-action@v1
    with:
      token: ${{ secrets.CODECOV_TOKEN }}
      file: ./coverage/lcov.info

Referensi

https://docs.github.com/en/actions

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!