Kem Intensif DevOps · Pelajaran

Membangunkan GitHub Actions Tersuai

Pelajari cara mencipta tindakan tersuai boleh guna semula menggunakan JavaScript atau Docker untuk memperluas fungsi GitHub Actions.

Pelajaran 1 daripada 412 langkah

Membangunkan GitHub Actions Tersuai ialah pelajaran Kem Intensif DevOps percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif DevOps, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.

Melanjutkan GitHub Actions

Bagaimana jika anda memerlukan tugas khusus dalam aliran kerja yang tidak disediakan oleh GitHub Actions secara terbina dalam? Atau mungkin anda mempunyai logik kompleks yang ingin digunakan semula?

Action tersuai membolehkan anda membina alat sendiri yang boleh digunakan semula untuk aliran kerja. Ia ibarat program mini yang melaksanakan tugas khusus mengikut keperluan anda.

Kuasa Penyesuaian

Action tersuai memberikan beberapa manfaat kepada aliran saluran CI/CD anda:

  • Boleh Digunakan Semula: Tulis sekali, gunakan dalam banyak aliran kerja dan repositori.
  • Piawaian: Memastikan proses yang konsisten di seluruh organisasi anda.
  • Pengkapsulan: Menyembunyikan logik kompleks di sebalik antara muka yang ringkas.
  • Penyepaduan: Berinteraksi dengan alat dalaman atau API tertentu.

JavaScript atau Docker?

GitHub Actions menyokong dua cara utama untuk mencipta action tersuai:

  • Action JavaScript: Ditulis dalam JavaScript (atau TypeScript), dan dijalankan terus pada mesin pelaksana. Pantas dan mudah untuk tugas ringkas.
  • Action Bekas Docker: Mengkapsulkan persekitaran dan kod anda dalam imej Docker. Sesuai untuk action yang memerlukan kebergantungan atau bahasa tertentu.

Mentakrifkan Action Anda

Setiap action tersuai memerlukan fail action.yml dalam direktori akarnya. Fail YAML ini ibarat manifes yang menerangkan action anda kepada GitHub Actions:

  • name dan description: Perkara yang dilakukan oleh action anda.
  • inputs: Data yang diterima oleh action anda.
  • outputs: Data yang dihasilkan oleh action anda.
  • runs: Cara action anda dilaksanakan (contohnya, fail JavaScript atau imej Docker).

Contoh Action JS Ringkas

Mari lihat action JavaScript asas. Anda memerlukan action.yml dan fail index.js. action.yml mentakrifkan metadata action dan persekitaran pelaksanaannya.

# 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

Fail index.js mengandungi logik sebenar. Kami menggunakan kit alat @actions/core untuk mendapatkan input dan menetapkan output.

Cuba jalankan coretan JavaScript ringkas ini untuk melihat cara input dan output berfungsi dari segi konsep, walaupun di luar aliran kerja penuh:

// 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());

Asas Action Docker

Untuk persekitaran yang lebih kompleks, action bekas Docker amat berkuasa. Action ini menyertakan Dockerfile yang mentakrifkan imej bekas serta menggabungkan semua kebergantungan yang diperlukan.

action.yml anda akan merujuk imej ini dan memberitahu GitHub Actions supaya membina 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'

Persekitaran Action Anda

Dockerfile menentukan imej asas, memasang kebergantungan dan mentakrifkan titik masuk untuk action anda. Ini memastikan action anda berjalan dalam persekitaran yang konsisten dan terkawal.

# 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"]

Menskripkan Action Docker

Dalam bekas Docker, skrip titik masuk anda (contohnya, entrypoint.sh) menerima input sebagai pemboleh ubah persekitaran (dengan awalan INPUT_). Skrip itu menetapkan output dengan menulisnya ke fail yang ditentukan oleh pemboleh ubah persekitaran $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"

Amalan Terbaik untuk Action

Semasa membangunkan action tersuai, pertimbangkan petua berikut untuk menghasilkan alat yang kukuh dan mudah diselenggarakan:

  • Pemberian Versi: Gunakan pemberian versi semantik (contohnya, v1, v2) demi kestabilan.
  • Pengujian: Uji action anda dengan teliti secara setempat dan dalam aliran kerja.
  • Pengendalian Ralat: Laksanakan mesej ralat yang jelas dan kegagalan yang terkawal.
  • Keselamatan: Bersihkan input dan elakkan pendedahan data sensitif.
  • Dokumentasi: Sediakan arahan penggunaan yang jelas dalam README anda.

Pemeriksaan Jenis Action

Anda perlu mencipta GitHub Action tersuai yang memerlukan pustaka Python tertentu yang tidak dipasang terlebih dahulu pada pelaksana GitHub Actions standard. Jenis action manakah yang biasanya paling sesuai untuk situasi ini?

Ringkasan Action Tersuai

Kita telah meneroka cara melanjutkan GitHub Actions dengan mencipta action tersuai sendiri. Anda mempelajari dua jenis utama: action JavaScript dan action bekas Docker, serta peranan penting fail action.yml. Kita juga membincangkan cara mentakrifkan input, output dan logik teras bagi setiap jenis, bersama-sama amalan terbaik untuk pembangunan.

Action tersuai sangat berguna untuk kebolehgunaan semula dan penyeragaman dalam aliran saluran CI/CD anda!

Percuma untuk bermula

Pelajari Kem Intensif DevOps dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
142
Pelajaran
568

Soalan Lazim

Adakah pelajaran “Membangunkan GitHub Actions Tersuai” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif DevOps, termasuk “Membangunkan GitHub Actions Tersuai”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif DevOps merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Membangunkan GitHub Actions Tersuai”?

Pelajari cara mencipta tindakan tersuai boleh guna semula menggunakan JavaScript atau Docker untuk memperluas fungsi GitHub Actions. Anda berlatih Kem Intensif DevOps menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif DevOps?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif DevOps di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Membangunkan GitHub Actions Tersuai” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif DevOps ini?

Ya. Setiap pelajaran Kem Intensif DevOps menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Membangunkan GitHub Actions Tersuai
  2. Pelaksana Dihos Sendiri untuk Premis Sendiri
  3. Menyepadukan dengan Sistem Perusahaan
  4. Tindakan Gubahan dan Penerbitan ke Marketplace
← Kembali ke Kem Intensif DevOps