การดําเนินการ GitHub ทําให้งานการพัฒนาเป็นไปโดยอัตโนมัติได้อย่างไร
ที่นี่ เราแนะนําการดําเนินการและเวิร์กโฟลว์ของ GitHub คุณเรียนรู้ชนิดของการดําเนินการที่คุณสามารถใช้และตําแหน่งที่จะค้นหาได้ นอกจากนี้ คุณยังดูตัวอย่างของการดําเนินการประเภทเหล่านี้และความเหมาะสมของการดําเนินการในเวิร์กโฟลว์
GitHub ลดเวลาจากความคิดในการปรับใช้
GitHub ได้รับการออกแบบมาเพื่อช่วยให้ทีมของนักพัฒนาและวิศวกร DevOps สร้างและปรับใช้แอปพลิเคชันได้อย่างรวดเร็ว มีคุณลักษณะมากมายใน GitHub ที่เปิดใช้งานประสิทธิภาพเหล่านี้ แต่โดยทั่วไปแล้วจะอยู่ในหนึ่งในสองประเภท:
- การสื่อสาร : พิจารณาวิธีการทั้งหมดที่ GitHub ทําให้ง่ายสําหรับทีมนักพัฒนาในการสื่อสารเกี่ยวกับโครงการพัฒนาซอฟต์แวร์: การตรวจสอบรหัสในคําขอดึงข้อมูลปัญหา GitHub กระดานโครงการ Wiki การแจ้งเตือน และอื่น ๆ
- Automation: การดําเนินการ GitHub ช่วยให้ทีมของคุณสามารถทํางานเวิร์กโฟลว์โดยอัตโนมัติได้ทุกขั้นตอนในกระบวนการพัฒนาซอฟต์แวร์ ตั้งแต่การรวมไปจนถึงการส่งมอบไปยังการปรับใช้ นอกจากนี้ยังช่วยให้คุณสามารถเพิ่มป้ายชื่อโดยอัตโนมัติเพื่อดึงคําขอและตรวจสอบปัญหาเก่าและคําขอดึงข้อมูล
เมื่อรวมกัน คุณลักษณะเหล่านี้อนุญาตให้ทีมพัฒนาหลายพันคนลดระยะเวลาที่ใช้จากแนวคิดเริ่มต้นไปจนถึงการปรับใช้ได้อย่างมีประสิทธิภาพ
ใช้การทํางานอัตโนมัติของเวิร์กโฟลว์เพื่อลดเวลาการพัฒนา
ในโมดูลนี้ เรามุ่งเน้นไปที่ระบบอัตโนมัติ ลองใช้เวลาสักครู่เพื่อทําความเข้าใจว่าทีมสามารถใช้ระบบอัตโนมัติได้อย่างไร เพื่อลดระยะเวลาที่ใช้ในการดําเนินการเวิร์กโฟลว์การพัฒนาและการปรับใช้ทั่วไปให้เสร็จสมบูรณ์
พิจารณางานทั้งหมดที่ต้องเกิดขึ้น หลังจาก เขียนรหัสแล้ว แต่ก่อนที่คุณจะสามารถใช้รหัสตามวัตถุประสงค์ได้ ขึ้นอยู่กับเป้าหมายขององค์กรของคุณ คุณน่าจะต้องดําเนินงานต่อไปนี้อย่างน้อยหนึ่งงาน:
- ตรวจสอบให้แน่ใจว่ารหัสผ่านการทดสอบหน่วยทั้งหมด
- ดําเนินการตรวจสอบคุณภาพและการปฏิบัติตามรหัสเพื่อให้แน่ใจว่ารหัสต้นทางเป็นไปตามมาตรฐานขององค์กร
- ตรวจสอบโค้ดและการขึ้นต่อกันของโค้ดสําหรับปัญหาด้านความปลอดภัยที่ทราบแล้ว
- สร้างโค้ดโดยการรวมโค้ดต้นทางใหม่จากผู้สนับสนุนหลายราย (อาจ)
- ตรวจสอบให้แน่ใจว่าซอฟต์แวร์ผ่านการทดสอบการรวม
- ระบุเวอร์ชันของรุ่นใหม่
- ส่งมอบไบนารีใหม่ไปยังตําแหน่งระบบไฟล์ที่เหมาะสม
- ปรับใช้ไบนารีใหม่ไปยังหนึ่งหรือหลายเซิร์ฟเวอร์
- ตรวจสอบว่างานเหล่านี้ไม่มีการส่งผ่านหรือไม่ และรายงานปัญหาไปยังบุคคลหรือทีมที่เหมาะสมเพื่อการแก้ปัญหา
ความท้าทายคือการทํางานเหล่านี้อย่างเชื่อถือได้สม่ําเสมอและในลักษณะที่ยั่งยืน กระบวนการนี้เป็นงานที่เหมาะสําหรับการทํางานอัตโนมัติของเวิร์กโฟลว์ ถ้าคุณพึ่งพา GitHub อยู่แล้ว คุณอาจต้องการตั้งค่าการทํางานอัตโนมัติของเวิร์กโฟลว์โดยใช้การดําเนินการ GitHub
การดําเนินการ GitHub คืออะไร
การดําเนินการ GitHub เป็นสคริปต์แบบแพคเกจเพื่อทํางานอัตโนมัติในเวิร์กโฟลว์การพัฒนาซอฟต์แวร์ใน GitHub คุณสามารถกําหนดค่าการดําเนินการ GitHub เพื่อทริกเกอร์เวิร์กโฟลว์ที่ซับซ้อนที่ตรงกับความต้องการขององค์กรของคุณ ทริกเกอร์สามารถเกิดขึ้นได้ในแต่ละครั้งที่นักพัฒนาตรวจสอบซอร์สโค้ดใหม่ในสาขาที่ระบุ ช่วงเวลาที่กําหนดเวลา หรือด้วยตนเอง ผลลัพธ์ที่ได้คือเวิร์กโฟลว์อัตโนมัติที่เชื่อถือได้และยั่งยืนซึ่งนําไปสู่การลดลงของเวลาการพัฒนาอย่างมีนัยสําคัญ
คุณสามารถค้นหาการดําเนินการ GitHub ได้จากที่ใด
การดําเนินการ GitHub คือสคริปต์ที่ยึดตามรูปแบบข้อมูล yml ที่เก็บแต่ละแห่งมี การดําเนินการ แท็บที่ให้วิธีง่าย ๆ และรวดเร็วในการเริ่มต้นการตั้งค่าสคริปต์แรกของคุณ ถ้าคุณเห็นเวิร์กโฟลว์ที่คุณคิดว่าเป็นจุดเริ่มต้นที่ยอดเยี่ยม เพียงเลือกปุ่ม กําหนดค่า เพื่อเพิ่มสคริปต์ และเริ่มแก้ไข yml ต้นทาง
อย่างไรก็ตาม นอกเหนือจากการดําเนินการ GitHub เหล่านั้นที่แสดงบนแท็บ การดําเนินการ คุณสามารถ:
- ค้นหา การดําเนินการ GitHub ใน GitHub Marketplace GitHub Marketplace ช่วยให้คุณสามารถค้นหาและซื้อเครื่องมือที่ขยายเวิร์กโฟลว์ของคุณ
- ค้นหาโครงการโอเพนซอร์ส ตัวอย่างเช่น การดําเนินการ GitHub องค์กรมีที่เก็บโอเพนซอร์สยอดนิยมมากมายที่มีการดําเนินการ GitHub ที่คุณสามารถใช้ได้
- เขียนการดําเนินการ GitHub ของคุณเองตั้งแต่เริ่มต้น คุณสามารถสร้างให้เป็นโอเพนซอร์สหรือแม้แต่เผยแพร่ไปยัง GitHub Marketplace
การใช้การดําเนินการ GitHub แบบโอเพนซอร์ส
การดําเนินการ GitHub จํานวนมากเป็นโอเพนซอร์สและพร้อมใช้งานสําหรับทุกคนที่ต้องการใช้ อย่างไรก็ตามเช่นเดียวกับซอฟต์แวร์โอเพนซอร์สคุณต้องตรวจสอบอย่างรอบคอบก่อนที่จะใช้ในโครงการของคุณ คล้ายกับมาตรฐานชุมชนที่แนะนําด้วยซอฟต์แวร์โอเพนซอร์ส เช่น README หลักจรรยาบรรณ ไฟล์ร่วมสร้างและเทมเพลตปัญหา คุณสามารถทําตามคําแนะนําเหล่านี้เมื่อใช้การดําเนินการ GitHub:
- ตรวจสอบไฟล์
action.ymlของการดําเนินการสําหรับอินพุต เอาต์พุต และเพื่อให้แน่ใจว่าโค้ดทํางานตามที่จะระบุว่าเป็นเช่นนั้น - ตรวจสอบว่าการดําเนินการอยู่ใน GitHub Marketplace หรือไม่ การตรวจสอบนี้คุ้มค่าแม้ว่าการดําเนินการไม่จําเป็นต้องอยู่ใน GitHub Marketplace ให้ถูกต้องก็ตาม
- ตรวจสอบว่ามีการตรวจสอบการดําเนินการใน GitHub Marketplace หรือไม่ การตรวจสอบความถูกต้องหมายความว่า GitHub อนุมัติการใช้การดําเนินการนี้ อย่างไรก็ตาม คุณยังคงควรตรวจทานก่อนใช้งาน
- รวมเวอร์ชันของการดําเนินการที่คุณกําลังใช้โดยระบุ Git ref, SHA หรือแท็ก
ชนิดของการดําเนินการ GitHub
การดําเนินการ GitHub มีสามประเภท: การดําเนินการคอนเทนเนอร์ การดําเนินการ JavaScript และการดําเนินการแบบรวม
ด้วย การดําเนินการคอนเทนเนอร์สภาพแวดล้อมเป็นส่วนหนึ่งของโค้ดของการดําเนินการ การดําเนินการเหล่านี้สามารถเรียกใช้ได้ในสภาพแวดล้อม Linux ที่โฮสต์ GitHub เท่านั้น การดําเนินการคอนเทนเนอร์รองรับหลายภาษา
การดําเนินการ JavaScript ไม่มีสภาพแวดล้อมในโค้ด คุณต้องระบุสภาพแวดล้อมเพื่อดําเนินการกระทําเหล่านี้ คุณสามารถเรียกใช้การดําเนินการเหล่านี้ใน VM (เครื่องเสมือน) ในระบบคลาวด์หรือภายในองค์กร การดําเนินการ JavaScript สนับสนุนสภาพแวดล้อม Linux, macOS และ Windows
การดําเนินการแบบรวม ช่วยให้คุณสามารถรวมหลายขั้นตอนเวิร์กโฟลว์ภายในการดําเนินการเดียวได้ ตัวอย่างเช่น คุณสามารถใช้คุณลักษณะนี้เพื่อรวมคําสั่งการเรียกใช้หลายคําสั่งเข้าด้วยกันเป็นการดําเนินการ แล้วจึงมีเวิร์กโฟลว์ที่ดําเนินการคําสั่งที่รวมเข้าด้วยกันเป็นขั้นตอนเดียวโดยใช้การดําเนินการนั้น
กายวิภาคของการดําเนินการ GitHub
นี่คือตัวอย่างของการดําเนินการที่ทําการชําระเงิน git ของที่เก็บ การดําเนินการนี้ การดําเนินการ/checkout@v1เป็นส่วนหนึ่งของขั้นตอนในเวิร์กโฟลว์ ขั้นตอนนี้สร้างโค้ด Node.js ที่ถูกเช็คเอาท์ เราจะพูดคุยเกี่ยวกับเวิร์กโฟลว์ งาน และขั้นตอนในส่วนถัดไป
steps:
- uses: actions/checkout@v1
- name: npm install and build webpack
run: |
npm install
npm run build
สมมติว่าคุณต้องการใช้การดําเนินการคอนเทนเนอร์เพื่อเรียกใช้โค้ดแบบคอนเทนเนอร์ การดําเนินการของคุณอาจมีลักษณะดังนี้:
name: "Hello Actions"
description: "Greet someone"
author: "octocat@github.com"
inputs:
MY_NAME:
description: "Who to greet"
required: true
default: "World"
runs:
uses: "docker"
image: "Dockerfile"
branding:
icon: "mic"
color: "purple"
โปรดสังเกตส่วน inputs ที่นี่ คุณจะได้รับค่าของตัวแปรที่เรียกว่า MY_NAME ตัวแปรนี้ได้รับการตั้งค่าในเวิร์กโฟลว์ที่เรียกใช้การดําเนินการนี้
ในส่วน runs ให้สังเกตว่าคุณระบุ docker ในแอตทริบิวต์ uses เมื่อคุณตั้งค่านี้ คุณจําเป็นต้องระบุเส้นทางไปยังไฟล์รูปภาพ Docker ในกรณีนี้ Dockerfile เราไม่ได้ครอบคลุมรายละเอียดของ Docker ที่นี่ แต่ถ้าคุณต้องการข้อมูลเพิ่มเติม โปรดดูบทนําสู่โมดูลคอนเทนเนอร์ Docker
ส่วนสุดท้าย การสร้างแบรนด์ปรับแต่งการดําเนินการของคุณใน GitHub Marketplace หากคุณตัดสินใจที่จะเผยแพร่
คุณสามารถค้นหารายการทั้งหมดของเมตาดาต้าการดําเนินการที่ไวยากรณ์เมตาดาต้า สําหรับ การดําเนินการ GitHub
เวิร์กโฟลว์การดําเนินการ GitHub คืออะไร
เวิร์กโฟลว์การดําเนินการ GitHub เป็นกระบวนการที่คุณตั้งค่าในที่เก็บของคุณเพื่อทํางานวงจรชีวิตการพัฒนาซอฟต์แวร์โดยอัตโนมัติ รวมถึงการดําเนินการ GitHub ด้วยเวิร์กโฟลว์ คุณสามารถสร้าง ทดสอบ จัดแพคเกจ เผยแพร่ และปรับใช้โครงการใด ๆ บน GitHub ได้
เมื่อต้องการสร้างเวิร์กโฟลว์ คุณเพิ่มการดําเนินการลงในไฟล์.yml ในไดเรกทอรี .github/workflows ในที่เก็บ GitHub ของคุณ
ในแบบฝึกหัดที่กําลังมาถึง ไฟล์เวิร์กโฟลว์ของคุณ main.yml มีลักษณะดังตัวอย่างนี้:
name: A workflow for my Hello World file
on: push
jobs:
build:
name: Hello world action
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: ./action-a
with:
MY_NAME: "Mona"
on:โปรดสังเกตแอตทริบิวต์ ค่าของเป็นทริกเกอร์ที่จะระบุเมื่อเวิร์กโฟลว์นี้ทํางาน ที่นี่ จะทริกเกอร์การทํางานเมื่อมีเหตุการณ์การพุชไปยังที่เก็บของคุณ คุณสามารถระบุเหตุการณ์เดียว เช่น on: pushอาร์เรย์ของเหตุการณ์ เช่น on: [push, pull_request]หรือแผนที่การกําหนดค่าเหตุการณ์ที่กําหนดเวลาเวิร์กโฟลว์หรือจํากัดการดําเนินการของเวิร์กโฟลว์ไปยังไฟล์ แท็ก หรือการเปลี่ยนแปลงสาขาที่เฉพาะเจาะจง แผนที่อาจมีลักษณะดังนี้:
on:
# Trigger the workflow on push or pull request,
# but only for the main branch
push:
branches:
- main
pull_request:
branches:
- main
# Also trigger on page_build, as well as release created events
page_build:
release:
types: # This configuration doesn't affect the page_build event above
- created
เหตุการณ์ทริกเกอร์บนชนิดกิจกรรมทั้งหมดสําหรับเหตุการณ์เว้นแต่ว่าคุณระบุชนิดหรือชนิด สําหรับรายการเหตุการณ์และประเภทกิจกรรมที่ครอบคลุม โปรดดูที่: เหตุการณ์ที่ทริกเกอร์เวิร์กโฟลว์ ในเอกสาร GitHub
เวิร์กโฟลว์ต้องมี อย่างน้อยหนึ่ง งาน งานคือส่วนของเวิร์กโฟลว์ที่เชื่อมโยงกับตัวเรียกใช้ นักวิ่งสามารถโฮสต์ GitHub หรือโฮสต์ด้วยตนเอง และงานสามารถเรียกใช้บนเครื่องหรือในคอนเทนเนอร์ได้ คุณระบุโปรแกรมรันพร้อม runs-on: แอตทริบิวต์ ที่นี่ คุณกําลังบอกให้เวิร์กโฟลว์เรียกใช้งานนี้บน ubuntu-latest
แต่ละงานมีขั้นตอนในการทําให้เสร็จสมบูรณ์ ในตัวอย่างของเรา ขั้นตอนใช้การดําเนินการ การดําเนินการ/checkout@v1 เพื่อตรวจสอบที่เก็บข้อมูล สิ่งที่น่าสนใจคือค่า uses: ./action-a ซึ่งเป็นเส้นทางไปยังการดําเนินการคอนเทนเนอร์ที่คุณสร้างในไฟล์ action.yml
ส่วนสุดท้ายของไฟล์เวิร์กโฟลว์นี้จะตั้งค่าตัวแปร MY_NAME สําหรับเวิร์กโฟลว์นี้ เรียกคืนการดําเนินการคอนเทนเนอร์ใช้อินพุตที่เรียกว่า MY_NAME
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับไวยากรณ์เวิร์กโฟลว์ ให้ดู ไวยากรณ์เวิร์กโฟลว์สําหรับการดําเนินการ GitHub
การอ้างอิงการดําเนินการในเวิร์กโฟลว์
เมื่อสร้างเวิร์กโฟลว์ใน GitHub Actions คุณสามารถอ้างอิงการดําเนินการจากแหล่งต่างๆ ได้ การดําเนินการเหล่านี้สามารถใช้เพื่อทําให้งานในเวิร์กโฟลว์ของคุณเป็นแบบอัตโนมัติ ด้านล่างนี้คือแหล่งข้อมูลหลักที่เวิร์กโฟลว์สามารถอ้างอิงการดําเนินการได้:
อิมเมจคอนเทนเนอร์ Docker ที่เผยแพร่บน Docker Hub
เวิร์กโฟลว์สามารถอ้างอิงการดําเนินการที่เผยแพร่เป็นอิมเมจคอนเทนเนอร์ Docker บน Docker Hub การดําเนินการเหล่านี้ถูกคอนเทนเนอร์และรวมถึงการขึ้นต่อกันทั้งหมดที่จําเป็นในการดําเนินการ หากต้องการใช้การดําเนินการดังกล่าว ให้ระบุอิมเมจ Docker ในusesแอตทริบิวต์ของขั้นตอนเวิร์กโฟลว์ของคุณ เช่น:steps: - name: Run a Docker action uses: docker://<docker-image-name>:<tag>ที่เก็บสาธารณะใด ๆ
การดําเนินการที่โฮสต์ในที่เก็บสาธารณะสามารถอ้างอิงได้โดยตรงในเวิร์กโฟลว์ของคุณ ทุกคนสามารถเข้าถึงการดําเนินการเหล่านี้ได้ และสามารถใช้งานได้โดยการระบุชื่อและเวอร์ชันที่เก็บ (Git ref, SHA หรือแท็ก) ในusesแอตทริบิวต์ เช่น:steps: - name: Use a public action uses: actions/checkout@v3
[! สําคัญ]
เพื่อความปลอดภัยที่ดีขึ้นให้ใช้ SHA แบบเต็มเมื่ออ้างอิงการกระทํา ไม่ใช่แค่แท็กเช่น
@v3.
วิธีนี้ทําให้แน่ใจว่าเวิร์กโฟลว์ของคุณใช้โค้ดเดียวกันเสมอ แม้ว่าการดําเนินการจะได้รับการอัปเดตหรือเปลี่ยนแปลงในภายหลังก็ตาม
ตัวอย่าง:uses: actions/checkout@c2c1744e079e0dd11c8e0af4a96064ca4f6a2e9e
-
ที่เก็บเดียวกันกับไฟล์เวิร์กโฟลว์ของคุณ
คุณสามารถอ้างอิงการดําเนินการที่จัดเก็บไว้ในที่เก็บเดียวกันกับไฟล์เวิร์กโฟลว์ของคุณได้ คุณลักษณะนี้มีประโยชน์สําหรับการดําเนินการแบบกําหนดเองที่เฉพาะเจาะจงสําหรับโครงการของคุณ หากต้องการอ้างอิงการดําเนินการดังกล่าว ให้ใช้เส้นทางสัมพัทธ์ไปยังไดเรกทอรีของการดําเนินการ ตัวอย่าง:steps: - name: Use a local action uses: ./path-to-action
สําหรับรายละเอียดเพิ่มเติม โปรดดูคําแนะนําการเสริมความแข็งแกร่งด้านความปลอดภัยสําหรับ GitHub Actions
-
ตลาดองค์กร
หากองค์กรของคุณใช้ GitHub Enterprise คุณสามารถอ้างอิงการดําเนินการจากตลาดส่วนตัวขององค์กรของคุณได้ การดําเนินการเหล่านี้ได้รับการดูแลและจัดการโดยองค์กรของคุณ เพื่อให้มั่นใจว่าเป็นไปตามมาตรฐานภายใน ตัวอย่าง:steps: - name: Use an enterprise marketplace action uses: enterprise-org/action-name@v1
หมายเหตุ
- การดําเนินการในที่เก็บส่วนตัวยังสามารถอ้างอิงได้ แต่ต้องมีการรับรองความถูกต้องและสิทธิ์ที่เหมาะสม
- เมื่ออ้างอิงการดําเนินการ ให้ระบุเวอร์ชัน (Git ref, SHA หรือแท็ก) เสมอเพื่อให้แน่ใจว่ามีความสอดคล้องกันและหลีกเลี่ยงการเปลี่ยนแปลงที่ไม่คาดคิด
สําหรับข้อมูลเพิ่มเติม โปรดดู การอ้างอิงการดําเนินการในเวิร์กโฟลว์
โฮสต์ GitHub เทียบกับรองชนะเลิศที่โฮสต์ตนเอง
เราได้กล่าวถึงนักวิ่งโดยย่อว่าเกี่ยวข้องกับงาน โปรแกรมเรียกใช้เป็นเพียงเซิร์ฟเวอร์ที่ติดตั้งแอปพลิเคชันตัวเรียกใช้การดําเนินการ GitHub ในตัวอย่างเวิร์กโฟลว์ก่อนหน้านี้ มี runs-on: ubuntu-latest แอตทริบิวต์ภายในบล็อกงาน ซึ่งบอกเวิร์กโฟลว์ว่างานกําลังจะทํางานโดยใช้ตัวเรียกใช้ที่โฮสต์ GitHub ที่ทํางานอยู่ใน ubuntu-latest สภาพแวดล้อม
เมื่อถึงเวลาจะถึงนักวิ่งจะมีสองตัวเลือกให้เลือก: นักวิ่งที่โฮสต์ GitHub หรือนักวิ่งที่โฮสต์ตัวเอง ถ้าคุณใช้ตัวเรียกใช้ที่โฮสต์ GitHub แต่ละงานจะทํางานในอินสแตนซ์ใหม่ของสภาพแวดล้อมเสมือน ชนิดตัวเรียกใช้ที่โฮสต์ GitHub ที่คุณกําหนด runs-on: {operating system-version} จะระบุสภาพแวดล้อมนั้น ด้วยนักวิ่งที่โฮสต์ด้วยตนเองคุณต้องใช้ป้ายชื่อที่โฮสต์ด้วยตนเองระบบปฏิบัติการและสถาปัตยกรรมระบบ ตัวอย่างเช่น ตัวเรียกใช้งานที่โฮสต์ด้วยตนเองพร้อมระบบปฏิบัติการ Linux และสถาปัตยกรรม ARM32 จะมีลักษณะดังต่อไปนี้: runs-on: [self-hosted, linux, ARM32]
นักวิ่งแต่ละประเภทมีประโยชน์ แต่รองชนะเลิศที่โฮสต์ GitHub เสนอวิธีที่ง่ายและรวดเร็วกว่าในการเรียกใช้เวิร์กโฟลว์ของคุณ แม้ว่าจะมีตัวเลือกที่จํากัด การเรียกใช้ที่โฮสต์ด้วยตนเองเป็นวิธีที่สามารถกําหนดค่าได้สูงในการเรียกใช้เวิร์กโฟลว์ในสภาพแวดล้อมภายในเครื่องแบบกําหนดเองของคุณเอง คุณสามารถเรียกใช้รันแบบโฮสต์ด้วยตนเองภายในองค์กรหรือในระบบคลาวด์ได้ คุณยังสามารถใช้ตัวเรียกใช้ที่โฮสต์ด้วยตนเองเพื่อสร้างการกําหนดค่าฮาร์ดแวร์แบบกําหนดเองด้วยกําลังการประมวลผลหรือหน่วยความจําเพิ่มเติมได้ การกําหนดค่าชนิดนี้จะช่วยในการทํางานขนาดใหญ่ ขึ้น ติดตั้งซอฟต์แวร์ที่พร้อมใช้งานบนเครือข่ายภายในของคุณ และเลือกระบบปฏิบัติการที่โปรแกรมเรียกใช้ที่โฮสต์ GitHub ไม่มีให้
การดําเนินการ GitHub สามารถมีขีดจํากัดการใช้งานได้
การดําเนินการ GitHub มีขีดจํากัดการใช้งานบางอย่าง ขึ้นอยู่กับแผน GitHub ของคุณและว่าผู้เรียกใช้ของคุณเป็นผู้โฮสต์ GitHub หรือโฮสต์ด้วยตนเอง สําหรับข้อมูลเพิ่มเติมเกี่ยวกับขีดจํากัดการใช้งาน ให้ตรวจสอบ ขีดจํากัดการใช้งาน การเรียกเก็บเงิน และ การดูแลระบบในเอกสาร GitHub
GitHub ที่เป็นโฮสต์ของนักวิ่งที่มีขนาดใหญ่กว่า
GitHub เสนอตัวเรียกใช้งานที่มีขนาดใหญ่กว่าสําหรับเวิร์กโฟลว์ที่จําเป็นต้องใช้ทรัพยากรเพิ่มเติม การเรียกใช้เหล่านี้จะถูกโฮสต์บน GitHub และมี CPU หน่วยความจํา และเนื้อที่ดิสก์ที่เพิ่มขึ้นเมื่อเทียบกับโปรแกรมรันมาตรฐาน ซึ่งออกแบบมาเพื่อจัดการเวิร์กโฟลว์ที่ใช้ทรัพยากรมากได้อย่างมีประสิทธิภาพ จึงมั่นใจได้ว่ามีประสิทธิภาพสูงสุดสําหรับงานที่ต้องการ
ขนาดและป้ายชื่อของนักวิ่ง
โปรแกรมวิ่งที่ใหญ่กว่าสามารถใช้งานในการกําหนดค่าหลายแบบ โดยที่เก็บข้อมูล vCPUs, RAM และ SSD ที่ปรับปรุงประสิทธิภาพแล้วให้ตรงตามข้อกําหนดในเวิร์กโฟลว์ที่หลากหลาย การกําหนดค่าเหล่านี้เหมาะสําหรับสถานการณ์ต่าง ๆ เช่น:
- การคอมไพล์โค๊ดเบสขนาดใหญ่ด้วยไฟล์ต้นฉบับที่ครอบคลุม
- เรียกใช้ชุดการทดสอบที่ครอบคลุม รวมถึงการผสานรวมและการทดสอบแบบ end-to-end
- การประมวลผลชุดข้อมูลขนาดใหญ่สําหรับการวิเคราะห์ข้อมูลหรืองานการเรียนรู้ของเครื่อง
- สร้างแอปพลิเคชันที่มีการขึ้นต่อกันที่ซับซ้อนหรือผลลัพธ์ไบนารีขนาดใหญ่
- การดําเนินการจําลองประสิทธิภาพสูงหรือการสร้างแบบจําลองการคํานวณ
- การดําเนินการเข้ารหัสวิดีโอ การแสดงผล หรือเวิร์กโฟลว์การประมวลผลมัลติมีเดียอื่น ๆ
หากต้องการใช้โปรแกรมรันที่ใหญ่กว่า ให้ระบุป้ายชื่อตัวเรียกใช้ที่ต้องการในแอตทริบิวต์ของ runs-on ไฟล์เวิร์กโฟลว์ของคุณ ตัวอย่างเช่น หากต้องการใช้โปรแกรมรันเนอร์ที่มี 16 vCPUs และ RAM 64 GB คุณจะต้องตั้งค่าruns-on: ubuntu-latest-16core
jobs:
build:
runs-on: ubuntu-latest-16core
steps:
- uses: actions/checkout@v2
- name: Build project
run: make build
รันเนอร์ที่ใหญ่กว่าเหล่านี้จะรักษาความเข้ากันได้กับเวิร์กโฟลว์ที่มีอยู่ โดยรวมเครื่องมือที่ติดตั้งไว้ล่วงหน้าตัวเดียวกันเป็นรันเนอร์มาตรฐานubuntu-latest
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับขนาดรันเนอร์สําหรับนักวิ่งที่ใหญ่กว่า โปรดดู เอกสารประกอบของ GitHub
การจัดการรันเนอร์ขนาดใหญ่
GitHub มีเครื่องมือในการจัดการนักวิ่งขนาดใหญ่อย่างมีประสิทธิภาพ เพื่อให้มั่นใจถึงการใช้งานทรัพยากรและการจัดการค่าใช้จ่ายที่เหมาะสมที่สุด นี่คือประเด็นสําคัญบางส่วนของการจัดการรันเนอร์ที่ใหญ่กว่า:
การตรวจสอบการใช้งาน
คุณสามารถตรวจสอบการใช้งานของผู้เรียกใช้ที่มีขนาดใหญ่กว่าผ่านหน้าการใช้งานการดําเนินการ GitHub ในที่เก็บข้อมูลหรือการตั้งค่าองค์กรของคุณ หน้านี้ให้ข้อมูลเชิงลึกเกี่ยวกับจํานวนการเรียกใช้งาน ผลรวมรันไทม์ และต้นทุนที่เกี่ยวข้อง
การจัดการการเข้าถึง
ในการควบคุมการเข้าถึงโปรแกรมรันที่มีขนาดใหญ่ขึ้น คุณสามารถกําหนดค่าที่เก็บหรือนโยบายระดับองค์กรได้ การกําหนดค่านี้ช่วยให้มั่นใจว่าเฉพาะเวิร์กโฟลว์หรือทีมที่ได้รับอนุญาตเท่านั้นที่สามารถใช้การทํางานที่มีทรัพยากรสูงเหล่านี้ได้
การจัดการค่าใช้จ่าย
นักวิ่งขนาดใหญ่มีค่าใช้จ่ายเพิ่มเติมตามการใช้งาน หากต้องการจัดการค่าใช้จ่าย ให้พิจารณาคําแนะนําต่อไปนี้:
- ใช้จํานวนการเรียกใช้ที่ใหญ่กว่าสําหรับเวิร์กโฟลว์ที่จําเป็นต้องใช้ทรัพยากรสูงเท่านั้น
- ลดรันไทม์โดยการปรับเวิร์กโฟลว์ให้เหมาะสม
- ตรวจสอบรายละเอียดการเรียกเก็บเงินเป็นประจําเพื่อติดตามค่าใช้จ่าย
การปรับมาตราส่วนเวิร์กโฟลว์
ถ้าเวิร์กโฟลว์ของคุณต้องการใช้นักวิ่งที่มีขนาดใหญ่กว่าบ่อย ให้พิจารณากลยุทธ์การปรับมาตราส่วน เช่น:
- การใช้รันเนอร์ที่โฮสต์ด้วยตนเองสําหรับปริมาณงานที่สามารถคาดการณ์ได้
- การแยกเวิร์กโฟลว์ออกเป็นงานขนาดเล็กเพื่อกระจายโหลดข้ามตัวเรียกใช้มาตรฐาน