บันทึก
GitHub Action นี้ยังไม่รองรับโปรเจ็กต์ CircleCI ที่รวมเข้ากับแอป CircleCI GitHub หาก URL โครงการ CircleCI ของคุณมีลักษณะดังนี้: https://app.circleci.com/projects/organizations/circleci%
แสดงว่าคุณกำลังผสานรวมกับแอป CircleCI GitHub และ GitHub Action นี้ยังไม่รองรับ ติดต่อ [email protected] หากมีคำถาม/ข้อเสนอแนะ หาก URL โปรเจ็กต์ CircleCI ของคุณมีลักษณะดังนี้: https://app.circleci.com/projects/project-dashboard/github/
แสดงว่าคุณกำลังใช้การรวมแอป OAuth ของ CircleCI และรองรับ GitHub Action นี้
ทริกเกอร์ไปป์ไลน์ CircleCI ของคุณจากเหตุการณ์ใดๆ บน GitHub ด้วย GitHub Actions
สร้างเวิร์กโฟลว์ของ GitHub Action สำหรับไปป์ไลน์ CircleCI ที่ต้องการ
ทำได้โดยการเพิ่มไฟล์ YAML เวิร์กโฟลว์ (เราจะใช้ main.yml
) ไปที่ . ./.github/workflows
ทริกเกอร์ release
จะแสดงในตัวอย่างนี้ ลองใช้เหตุการณ์ GitHub ใดๆ เพื่อทริกเกอร์เวิร์กโฟลว์: https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows
เลือกชื่อและรหัสที่กำหนดเองสำหรับขั้นตอนสำหรับข้อมูลเมตาตามบริบทเพิ่มเติมในไปป์ไลน์ CircleCI ของคุณ
เมื่อ: ปล่อย: ประเภท: [เผยแพร่] งาน: trigger-circleci: run-on: ubuntu- ขั้นตอนล่าสุด: - ชื่อ: <ปรับแต่งชื่อ> id: <ปรับแต่ง id> ใช้: CircleCI-Public/[email protected] env: CCI_TOKEN: ${{ Secrets.CCI_TOKEN }}
สร้างข้อมูลลับที่เข้ารหัสชื่อ CCI_TOKEN
ซึ่งมีโทเค็น API ส่วนบุคคลที่จะใช้เพื่อทริกเกอร์ไปป์ไลน์ แนะนำให้เป็นผู้ใช้เครื่อง
เพิ่มคำจำกัดความพารามิเตอร์ไปป์ไลน์ให้กับการกำหนดค่า CircleCI ของคุณ ข้อมูลนี้จะถูกป้อนโดย GitHub Action เมื่อถูกทริกเกอร์
เพิ่มสิ่งต่อไปนี้ที่ด้านบนของไฟล์ .circleci/config.yml
ของคุณ ตรวจสอบให้แน่ใจว่าคุณระบุเวอร์ชัน 2.1
รุ่น: 2.1พารามิเตอร์: GHA_Actor: ประเภท: สตริงเริ่มต้น: "" GHA_Action: ประเภท: สตริงเริ่มต้น: "" GHA_Event: ประเภท: สตริงเริ่มต้น: "" GHA_Meta: ประเภท: สตริงเริ่มต้น: ""
ใช้ข้อมูลพารามิเตอร์ไปป์ไลน์เพื่อรันเวิร์กโฟลว์แบบมีเงื่อนไข
ดู: ตัวอย่าง
พารามิเตอร์อินพุตเสริมที่อนุญาตให้คุณระบุข้อมูลเมตาเพิ่มเติม
จำเป็น: เท็จ
คำอธิบาย : พารามิเตอร์ข้อมูลเมตาเพิ่มเติมที่เป็นทางเลือก จะพร้อมใช้งานบนไปป์ไลน์ CircleCI ในชื่อ GHA_Meta
งาน: trigger-circleci: วิ่งบน: ขั้นตอนล่าสุดของ Ubuntu: - ชื่อ: <ปรับแต่งชื่อ> id: <ปรับแต่ง id> ใช้: CircleCI-Public/[email protected] พร้อมด้วย: GHA_Meta: "<ข้อมูลที่กำหนดเอง>" env: CCI_TOKEN: ${{ secrets.CCI_TOKEN }}
จำเป็น: เท็จ
คำอธิบาย : ตัวบุ้งโปรเจ็กต์ CircleCI ของโปรเจ็กต์เป้าหมาย (เช่น: github/
) หากไม่ได้ระบุ ระบบจะใช้ Slug ของที่เก็บ GitHub ปัจจุบัน
งาน: trigger-circleci: run-on: ขั้นตอนล่าสุดของ Ubuntu: - ชื่อ: <ปรับแต่งชื่อ> id: <ปรับแต่ง id> ใช้: CircleCI-Public/[email protected] พร้อมด้วย: target-slug: "gh// " # จะทริกเกอร์ ไปป์ไลน์สำหรับโครงการภายนอก env: CCI_TOKEN: ${{ secrets.CCI_TOKEN }}
สนาม | ประเภทข้อมูล | คำอธิบาย |
---|---|---|
id | สตริง (uuid) | ID เฉพาะของไปป์ไลน์ |
state | สตริง (Enum: "สร้าง" "ผิดพลาด" "ตั้งค่ารอดำเนินการ" "ตั้งค่า" "รอดำเนินการ") | สถานะปัจจุบันของไปป์ไลน์ |
number | จำนวนเต็ม (int64) | จำนวนของไปป์ไลน์ |
created_at | สตริง (วันที่-เวลา) | วันที่และเวลาที่ไปป์ไลน์ถูกสร้างขึ้น |
ตามค่าเริ่มต้น เมื่อพื้นที่เก็บข้อมูลเชื่อมต่อกับ CircleCI หากเวิร์กโฟลว์ภายในการกำหนดค่าของโปรเจ็กต์นั้นไม่ได้ระบุเงื่อนไขหรือตัวกรองใดๆ ที่อาจป้องกันการดำเนินการ เวิร์กโฟลว์จะดำเนินการกับทุกเหตุการณ์ push
ตามค่าเริ่มต้น
นี่อาจหมายความว่ามีความเป็นไปได้ที่จะรันงานสองครั้งโดยไม่ได้ตั้งใจ หนึ่งครั้งในเหตุการณ์ push
จาก CircleCI รวมถึงเหตุการณ์อื่นๆ ที่ถูกทริกเกอร์โดย GitHub Action
หากคุณใช้ GitHub Actions เพื่อจัดเตรียมทริกเกอร์ API ทั้งหมดของคุณ ตรวจสอบให้แน่ใจว่าเวิร์กโฟลว์ของการกำหนดค่า CircleCI แต่ละรายการมีการจำกัดเงื่อนไขในการดำเนินการกับทริกเกอร์ GitHub Action เท่านั้น
ตัวอย่าง
เวิร์กโฟลว์: # เวิร์กโฟลว์นี้ได้รับการตั้งค่าให้ทริกเกอร์แบบมีเงื่อนไข # ผ่าน GitHub Action เท่านั้น # เมื่อไม่มีเวิร์กโฟลว์อื่นที่ไม่มีการกรอง เหตุการณ์พุชปกติจะถูกละเว้น ทดสอบ: เมื่อ: << ไปป์ไลน์.พารามิเตอร์.GHA_Action >> งาน: - ทดสอบ