0Pricing
DevOps Bootcamp · Pelajaran

Mengembangkan GitHub Actions Khusus

Pelajari cara membuat actions khusus yang dapat digunakan kembali menggunakan JavaScript atau Docker untuk memperluas fungsionalitas GitHub Actions.

Mengembangkan GitHub Actions Khusus adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Memperluas GitHub Actions

Bagaimana jika Anda memerlukan tugas tertentu dalam alur kerja yang tidak disediakan GitHub Actions secara langsung? Atau mungkin Anda memiliki logika kompleks yang ingin digunakan kembali?

Action khusus memungkinkan Anda membuat alat yang dapat digunakan kembali untuk alur kerja. Action ini seperti program kecil yang menjalankan tugas tertentu sesuai kebutuhan Anda.

Kekuatan Kustomisasi

Action khusus memberikan beberapa manfaat bagi alur CI/CD Anda:

  • Dapat Digunakan Kembali: Tulis sekali, gunakan dalam banyak alur kerja dan repositori.
  • Standardisasi: Memastikan proses yang konsisten di seluruh organisasi Anda.
  • Enkapsulasi: Menyembunyikan logika kompleks di balik antarmuka sederhana.
  • Integrasi: Berinteraksi dengan alat internal atau API tertentu.

JavaScript atau Docker?

GitHub Actions mendukung dua cara utama untuk membuat Action khusus:

  • Action JavaScript: Ditulis dalam JavaScript (atau TypeScript), Action ini berjalan langsung di mesin runner. Cepat dan mudah untuk tugas sederhana.
  • Action Kontainer Docker: Mengenkapsulasi lingkungan dan kode Anda dalam citra Docker. Ideal untuk Action yang memerlukan dependensi atau bahasa tertentu.

Mendefinisikan Action Anda

Setiap Action khusus memerlukan berkas action.yml di direktori akarnya. Berkas YAML ini seperti manifes yang memberi tahu GitHub Actions tentang Action Anda:

  • name dan description: Hal yang dilakukan Action Anda.
  • inputs: Data yang diterima Action Anda.
  • outputs: Data yang dihasilkan Action Anda.
  • runs: Cara Action Anda dijalankan (misalnya, berkas JavaScript atau citra Docker).

Contoh Action JS Sederhana

Mari kita lihat Action JavaScript dasar. Anda memerlukan berkas action.yml dan index.js. Berkas action.yml mendefinisikan metadata dan lingkungan eksekusi Action.

# action.yml
name: 'Hello World Action'
description: 'Greets a person using a custom message'
inputs:
  who-to-greet:
    description: 'Who to greet'
    required: true
    default: 'World'
outputs:
  greeting-message:
    description: 'The greeting message generated'
runs:
  using: 'node16'
  main: 'index.js'

Menulis JavaScript

Berkas index.js berisi logika sebenarnya. Kita menggunakan perangkat bantu @actions/core untuk mendapatkan masukan dan menetapkan keluaran.

Cobalah menjalankan potongan JavaScript sederhana ini untuk melihat cara kerja masukan dan keluaran secara konseptual, bahkan di luar alur kerja lengkap:

// index.js (simplified for demonstration)
const core = require('@actions/core');

try {
  const name = core.getInput('who-to-greet');
  const message = `Hello, ${name}!`;
  console.log(message);
  core.setOutput('greeting-message', message);
} catch (error) {
  core.setFailed(error.message);
}

// A standalone runnable example to demonstrate core logic
function runSimpleGreeting(inputName) {
  const name = inputName || 'World';
  const message = `Hello from runnable JS, ${name}!`;
  return message;
}

console.log(runSimpleGreeting('CoddyKit'));
console.log(runSimpleGreeting());

Dasar-Dasar Action Docker

Untuk lingkungan yang lebih kompleks, Action kontainer Docker sangat bermanfaat. Action ini menyertakan Dockerfile yang mendefinisikan citra kontainer dan menggabungkan semua dependensi yang diperlukan.

action.yml Anda akan merujuk citra ini dan memberi tahu GitHub Actions untuk membangun serta menjalankannya.

# action.yml for Docker action
name: 'Docker Hello World'
description: 'Greets a name from within a Docker container'
inputs:
  who-to-greet:
    description: 'Who to greet'
    required: true
    default: 'Docker'
outputs:
  greeting-message:
    description: 'The greeting message from Docker'
runs:
  using: 'docker'
  image: 'Dockerfile'

Lingkungan Action Anda

Dockerfile menentukan citra dasar, memasang dependensi, dan mendefinisikan titik masuk untuk Action Anda. Dengan demikian, Action berjalan dalam lingkungan yang konsisten dan terkendali.

# Dockerfile
FROM alpine:3.16

LABEL "com.github.actions.name"="Docker Hello World"
LABEL "com.github.actions.description"="Greets a name from within a Docker container"
LABEL "com.github.actions.icon"="globe"
LABEL "com.github.actions.color"="blue"

# Copy your script into the container
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]

Membuat Skrip Action Docker

Di dalam kontainer Docker, skrip titik masuk Anda (misalnya, entrypoint.sh) menerima masukan sebagai variabel lingkungan (dengan awalan INPUT_). Skrip tersebut menetapkan keluaran dengan menuliskannya ke berkas yang ditentukan oleh variabel lingkungan $GITHUB_OUTPUT.

#!/bin/sh -l

# entrypoint.sh

echo "Hello from Docker, $INPUT_WHO_TO_GREET!"
GREETING="Hello from Docker, $INPUT_WHO_TO_GREET!"
echo "greeting-message=$GREETING" >> "$GITHUB_OUTPUT"

Praktik Terbaik untuk Action

Saat mengembangkan Action khusus, pertimbangkan kiat berikut untuk membuat alat yang tangguh dan mudah dipelihara:

  • Penerapan Versi: Gunakan penerapan versi semantik (misalnya, v1, v2) untuk menjaga kestabilan.
  • Pengujian: Uji Action Anda secara menyeluruh, baik secara lokal maupun dalam alur kerja.
  • Penanganan Galat: Terapkan pesan galat yang jelas dan kegagalan yang ditangani dengan baik.
  • Keamanan: Bersihkan masukan dan hindari mengekspos data sensitif.
  • Dokumentasi: Berikan petunjuk penggunaan yang jelas dalam README Anda.

Pemeriksaan Jenis Action

Anda perlu membuat Action GitHub khusus yang memerlukan pustaka Python tertentu yang belum terpasang di runner GitHub Actions standar. Jenis Action apa yang umumnya paling sesuai untuk skenario ini?

Ringkasan Action Khusus

Kita telah mempelajari cara memperluas GitHub Actions dengan membuat Action khusus Anda sendiri. Anda mempelajari dua jenis utama: Action JavaScript dan Action kontainer Docker, serta peran penting berkas action.yml. Kita juga membahas cara mendefinisikan masukan, keluaran, dan logika inti untuk setiap jenis, beserta praktik terbaik dalam pengembangannya.

Action khusus sangat bermanfaat untuk penggunaan ulang dan standardisasi dalam alur CI/CD Anda!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Mengembangkan GitHub Actions Khusus” gratis?

Ya — teks lengkap “Mengembangkan GitHub Actions Khusus” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Mengembangkan GitHub Actions Khusus”?

Pelajari cara membuat actions khusus yang dapat digunakan kembali menggunakan JavaScript atau Docker untuk memperluas fungsionalitas GitHub Actions. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Mengembangkan GitHub Actions Khusus” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Mengembangkan GitHub Actions Khusus
  2. Pelaksana yang Dihosting Sendiri untuk Lokal
  3. Mengintegrasikan Sistem Perusahaan
  4. Aksi Komposit dan Publikasi ke Marketplace
← Kembali ke DevOps Bootcamp