การพัฒนาแอ็กชัน GitHub แบบกำหนดเอง
เรียนรู้การสร้างแอ็กชันแบบกำหนดเองที่นำกลับมาใช้ซ้ำได้ด้วย JavaScript หรือ Docker เพื่อขยายความสามารถของ GitHub Actions
การพัฒนาแอ็กชัน GitHub แบบกำหนดเอง เป็นบทเรียน DevOps Bootcamp ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน DevOps Bootcamp และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
ขยายความสามารถของ GitHub Actions
หากคุณต้องการงานเฉพาะในเวิร์กโฟลว์ที่ GitHub Actions ไม่มีให้โดยตรง หรือมีตรรกะที่ซับซ้อนซึ่งต้องการนำกลับมาใช้ซ้ำ จะทำอย่างไร
การดำเนินการแบบกำหนดเองช่วยให้คุณสร้างเครื่องมือที่นำกลับมาใช้ซ้ำได้สำหรับเวิร์กโฟลว์ เครื่องมือเหล่านี้เปรียบเสมือนโปรแกรมขนาดเล็กที่ทำงานเฉพาะอย่างตามความต้องการของคุณ
พลังของการปรับแต่ง
การดำเนินการแบบกำหนดเองมีประโยชน์หลายประการต่อกระบวนการ CI/CD ของคุณ:
- นำกลับมาใช้ซ้ำได้: เขียนครั้งเดียว ใช้ได้ในหลายเวิร์กโฟลว์และคลังเก็บ
- สร้างมาตรฐาน: ทำให้กระบวนการต่าง ๆ ในองค์กรมีความสม่ำเสมอ
- การห่อหุ้ม: ซ่อนตรรกะที่ซับซ้อนไว้เบื้องหลังส่วนติดต่อที่เรียบง่าย
- การผสานรวม: โต้ตอบกับเครื่องมือภายในหรือ API เฉพาะ
JavaScript หรือ Docker
GitHub Actions รองรับวิธีหลักสองแบบในการสร้างการดำเนินการแบบกำหนดเอง:
- การดำเนินการ JavaScript: เขียนด้วย JavaScript (หรือ TypeScript) และทำงานโดยตรงบนเครื่องรันเนอร์ รวดเร็วและใช้งานง่ายสำหรับงานทั่วไป
- การดำเนินการด้วยคอนเทนเนอร์ Docker: ห่อหุ้มสภาพแวดล้อมและโค้ดไว้ภายในอิมเมจ Docker เหมาะสำหรับการดำเนินการที่ต้องใช้ส่วนพึ่งพาหรือภาษาเฉพาะ
การกำหนดการดำเนินการของคุณ
การดำเนินการแบบกำหนดเองทุกแบบต้องมีไฟล์ action.yml อยู่ในไดเรกทอรีราก ไฟล์ YAML นี้เปรียบเสมือนรายการแสดงข้อมูลที่บอก GitHub Actions เกี่ยวกับการดำเนินการของคุณ:
nameและdescription: การดำเนินการของคุณทำอะไรinputs: ข้อมูลที่การดำเนินการของคุณรับเข้ามาoutputs: ข้อมูลที่การดำเนินการของคุณสร้างขึ้นruns: วิธีดำเนินการของคุณ (เช่น ไฟล์ JavaScript หรืออิมเมจ Docker)
ตัวอย่างการดำเนินการ JS อย่างง่าย
มาดูการดำเนินการ JavaScript พื้นฐานกัน คุณจะต้องมี action.yml และไฟล์ index.js โดย action.yml จะกำหนดข้อมูลเมตาและสภาพแวดล้อมการทำงานของการดำเนินการ
# 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'การเขียน JavaScript
ไฟล์ index.js มีตรรกะการทำงานจริง เราใช้ชุดเครื่องมือ @actions/core เพื่อรับข้อมูลเข้าและกำหนดข้อมูลออก
ลองเรียกใช้ข้อมูลโค้ด JavaScript อย่างง่ายนี้เพื่อดูแนวคิดการทำงานของข้อมูลเข้าและข้อมูลออก แม้อยู่นอกเวิร์กโฟลว์เต็มรูปแบบ
// 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());พื้นฐานการดำเนินการ Docker
สำหรับสภาพแวดล้อมที่ซับซ้อนยิ่งขึ้น การดำเนินการด้วยคอนเทนเนอร์ Docker มีประสิทธิภาพมาก โดยมี Dockerfile ที่กำหนดอิมเมจคอนเทนเนอร์และรวมส่วนพึ่งพาที่จำเป็นทั้งหมดไว้
action.yml ของคุณจะอ้างอิงอิมเมจนี้เพื่อบอก GitHub Actions ให้สร้างและเรียกใช้
# 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'สภาพแวดล้อมของการดำเนินการ
Dockerfile ระบุอิมเมจพื้นฐาน ติดตั้งส่วนพึ่งพา และกำหนดจุดเริ่มต้นสำหรับการดำเนินการของคุณ วิธีนี้ช่วยให้การดำเนินการทำงานในสภาพแวดล้อมที่สม่ำเสมอและควบคุมได้
# 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"]การเขียนสคริปต์สำหรับการดำเนินการ Docker
ภายในคอนเทนเนอร์ Docker สคริปต์จุดเริ่มต้นของคุณ (เช่น entrypoint.sh) จะรับข้อมูลเข้าเป็นตัวแปรสภาพแวดล้อม (มีคำนำหน้าเป็น INPUT_) และกำหนดข้อมูลออกโดยเขียนลงในไฟล์ที่ระบุโดยตัวแปรสภาพแวดล้อม $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"แนวทางปฏิบัติที่ดีที่สุดสำหรับการดำเนินการ
เมื่อพัฒนาการดำเนินการแบบกำหนดเอง ควรพิจารณาเคล็ดลับต่อไปนี้เพื่อให้เครื่องมือมีความเสถียรและดูแลรักษาได้ง่าย:
- การจัดการเวอร์ชัน: ใช้การกำหนดเวอร์ชันตามความหมาย (เช่น
v1,v2) เพื่อความเสถียร - การทดสอบ: ทดสอบการดำเนินการของคุณอย่างเคร่งครัดทั้งในเครื่องและในเวิร์กโฟลว์
- การจัดการข้อผิดพลาด: แสดงข้อความข้อผิดพลาดที่ชัดเจนและจัดการความล้มเหลวอย่างเหมาะสม
- ความปลอดภัย: ตรวจกรองข้อมูลเข้าและหลีกเลี่ยงการเปิดเผยข้อมูลละเอียดอ่อน
- เอกสารประกอบ: ให้คำแนะนำการใช้งานที่ชัดเจนใน README ของคุณ
ตรวจสอบประเภทการดำเนินการ
คุณต้องสร้างการดำเนินการ GitHub แบบกำหนดเองที่ต้องใช้ไลบรารี Python เฉพาะ ซึ่งไม่ได้ติดตั้งไว้ล่วงหน้าในเครื่องรันเนอร์ GitHub Actions มาตรฐาน โดยทั่วไปควรเลือกการดำเนินการประเภทใดสำหรับสถานการณ์นี้
สรุปการดำเนินการแบบกำหนดเอง
เราได้สำรวจวิธีขยาย GitHub Actions ด้วยการสร้างการดำเนินการแบบกำหนดเองของคุณเอง คุณได้เรียนรู้ประเภทหลักสองประเภท ได้แก่ JavaScript และการดำเนินการด้วยคอนเทนเนอร์ Docker รวมถึงบทบาทสำคัญของไฟล์ action.yml นอกจากนี้ยังครอบคลุมวิธีกำหนดข้อมูลเข้า ข้อมูลออก และตรรกะหลักของแต่ละประเภท ตลอดจนแนวทางปฏิบัติที่ดีที่สุดในการพัฒนา
การดำเนินการแบบกำหนดเองมีประโยชน์อย่างมากต่อการนำกลับมาใช้ซ้ำและการสร้างมาตรฐานในกระบวนการ CI/CD ของคุณ
คำถามที่พบบ่อย
บทเรียน “การพัฒนาแอ็กชัน GitHub แบบกำหนดเอง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “การพัฒนาแอ็กชัน GitHub แบบกำหนดเอง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส DevOps Bootcamp ให้อัปเกรดเป็น CoddyKit PRO คอร์ส DevOps Bootcamp มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “การพัฒนาแอ็กชัน GitHub แบบกำหนดเอง”
เรียนรู้การสร้างแอ็กชันแบบกำหนดเองที่นำกลับมาใช้ซ้ำได้ด้วย JavaScript หรือ Docker เพื่อขยายความสามารถของ GitHub Actions คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน DevOps Bootcamp หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน DevOps Bootcamp บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “การพัฒนาแอ็กชัน GitHub แบบกำหนดเอง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน DevOps Bootcamp นี้ได้ไหม
ได้ บทเรียน DevOps Bootcamp ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การพัฒนาแอ็กชัน GitHub แบบกำหนดเอง
- ตัวรันที่โฮสต์เองสำหรับระบบภายในองค์กร
- การผสานรวมกับระบบองค์กร
- แอ็กชันแบบประกอบและการเผยแพร่ไปยัง Marketplace