เครื่องมือสร้างลำดับขั้นตอนการทำงานสำหรับ GitHub Actions

ถัดไป

รีโพซิทอรี GitHub ใหม่ที่ยังไม่มีระบบ CI จะอยู่ห่างเพียง git push เท่านั้นจากกรณีที่การติดตั้งล้มเหลวในครั้งถัดไป โปรแกรมสร้างนี้จะสร้างไฟล์ .github/workflows/ci.yml สำหรับ Node.js, PHP หรือ Laravel โดยรวมกระบวนการต่างๆ เช่น การเชื่อมต่อระบบ checkout, การกำหนดการดำเนินการในขณะรันโปรแกรม (runtime actions), การติดตั้งส่วนประกอบที่จำเป็น และคำสั่งทดสอบมาตรฐานไว้ครบถ้วน, ทุกอย่างที่คุณต้องการเพื่อให้ระบบแสดงเครื่องหมายจุดสีเขียวหรือสีแดงได้

วิธีการสร้างกระบวนการทำงาน

  1. 1

    เลือกสแตก

    Node (ใช้ `actions/setup-node`), PHP (ใช้ `shivammathur/setup-php`) หรือ Laravel (PHP + `php artisan test`)

  2. 2

    ตั้งค่าสาขาหลัก

    `main` เป็นค่าเริ่มต้น หากรีโพของคุณยังใช้ `master` หรือชื่อที่กำหนดเอง ให้เปลี่ยนเป็นชื่อนั้นแทน

  3. 3

    สร้าง

    เครื่องมือนี้จะประกอบไฟล์ YAML ที่มีทริกเกอร์ `push` และ `pull_request` บนสาขานั้น

  4. 4

    คอมมิตไปยัง .github/workflows/

    สร้างไฟล์ที่ `.github/workflows/ci.yml` แล้ว push, เมื่อคอมมิตครั้งถัดไป แท็บ Actions จะสว่างขึ้น

ลักษณะของกระบวนการทำงาน

name: CI
on:
  push:
    branches: [main]
  pull_request:
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: shivammathur/setup-php@v2
        with:
          php-version: '8.4'
      - run: composer install --no-interaction
      - run: php artisan test

การดำเนินการที่เครื่องมือกำหนดไว้

การดำเนินการ วัตถุประสงค์
actions/checkout@v4 โคลนรีโพไปยัง Runner
actions/setup-node@v4 ติดตั้งชุดเครื่องมือ Node
shivammathur/setup-php@v2 ติดตั้งเวอร์ชัน PHP พร้อมส่วนขยาย

สิ่งที่ควรเพิ่มต่อไป

  • ขั้นตอน Lint (npm run lint, ./vendor/bin/phpstan analyse) ก่อนขั้นตอนการทดสอบ
  • การสร้างแบบเมทริกซ์: รันบนหลายเวอร์ชันของ Node/PHP โดยใช้ strategy.matrix
  • การอัปโหลดความครอบคลุม: codecov-action หรือ coveralls-action หลังขั้นตอนการทดสอบ
  • ข้อมูลลับ: อย่าฮาร์ดโค้ดโทเคนเด็ดขาด, ใช้ secrets.XXX และกำหนดไว้ที่ Settings → Actions

ข้อผิดพลาดที่พบบ่อย

  • ลืมดึงแท็ก: with: { fetch-depth: 0 } ใน checkout เมื่อระบบอ่านแท็ก
  • การใช้ภาพ Docker ของ latest: ต้องกำหนดเวอร์ชันให้คงที่ เพื่อให้สามารถรันโปรแกรมได้อย่างสม่ำเสมอแม้จะผ่านไปหลายเดือน
  • ดำเนินการทดสอบชุดนาน 30 นาทีในแต่ละครั้งของการส่งข้อมูล: แบ่งงานที่ใช้เวลานานด้วย needs: เพื่อให้สามารถประมวลผลแบบขนานได้

คำถามที่พบบ่อย

ในไฟล์ .github/workflows/ci.yml ที่อยู่ในไดเรกทอรีรากของ repos ของคุณ GitHub จะดึงไฟล์ YAML ทั้งหมดในไดเรกทอรีนี้มาแสดงเป็นกระบวนการทำงานแยกต่างหากในแท็บ Actions

คำขอดึงข้อมูลจากฟอร์กจะทำให้กระบวนการทำงานดำเนินไป แต่ตั้งค่า GITHUB_TOKEN เป็นโหมดอ่านเพียงอย่างเดียว ผู้มีส่วนร่วมภายนอกจะไม่สามารถเข้าถึงข้อมูลลับของคุณได้ เว้นแต่คุณจะอนุญาตโดยตรง

เพิ่มบล็อก strategy.matrix.php: [8.2, 8.3, 8.4] และอ้างอิง ${{ matrix.php }} ในขั้นตอน setup-php โดยโปรแกรมรันเนอร์จะสร้างงานหนึ่งงานสำหรับแต่ละเวอร์ชันพร้อมกัน

ไม่ ไฟล์ YAML ที่สร้างขึ้นจะแสดงบนหน้าเว็บเท่านั้น ไม่มีการอัปโหลดหรือบันทึกไว้ที่ใด และคุณคัดลอกออกมาใช้เอง

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

เครื่องสร้างตัวอักษรสุ่ม

สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน

ตัวลดรูปพีชคณิตบูลีน

ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^

เครื่องมือสร้าง EditorConfig

สร้างไฟล์ .editorconfig ด้วยกฎสไตล์และขนาดการเยื้อง การจบบรรทัด ชุดอักขระ และช่องว่างของคุณ เพื่อให้การจัดรูปแบบสอดคล้องกันในทุก IDE และโปรแกรมแก้ไข

เครื่องมือนี้มีให้บริการในภาษาอื่น