ฉันกำลังพยายามสร้างเวิร์กโฟลว์ GitHub ที่จะถูกเรียกใช้เมื่อที่เก็บข้อมูลอื่นสร้างรีลีสใหม่
ในเอกสารที่มีวรรค: on.event_name.types
ที่จะevent_name
release
คำถามคือ: มีวิธีการอ้างอิงถึงrelease
เหตุการณ์ของพื้นที่เก็บข้อมูลอื่นหรือไม่?
ฉันกำลังพยายามสร้างเวิร์กโฟลว์ GitHub ที่จะถูกเรียกใช้เมื่อที่เก็บข้อมูลอื่นสร้างรีลีสใหม่
ในเอกสารที่มีวรรค: on.event_name.types
ที่จะevent_name
release
คำถามคือ: มีวิธีการอ้างอิงถึงrelease
เหตุการณ์ของพื้นที่เก็บข้อมูลอื่นหรือไม่?
คำตอบ:
มีวิธีใดบ้างในการอ้างถึงกิจกรรมเผยแพร่ของที่เก็บอื่น?
ค่อนข้างแน่ใจว่าคุณสมบัตินี้ไม่มีอยู่
หากคุณมีสิทธิ์เข้าถึงที่เก็บสร้างการเผยแพร่คุณสามารถเรียกเหตุการณ์ webhook เพื่อเรียกon: repository_dispatch
เวิร์กโฟลว์ให้ทำงานในพื้นที่เก็บข้อมูลอื่น การดำเนินการrepository-Dispatchสามารถช่วยได้ในกรณีนี้
หากคุณไม่มีสิทธิ์เข้าถึงพื้นที่เก็บข้อมูลที่สร้างรีลีส (ซึ่งฉันถือว่าเป็นกรณีนี้) นี่จะเป็นคำแนะนำของฉัน ขั้นแรกให้สร้างเวิร์กโฟลว์ต่อไปนี้ซึ่งตรวจสอบแท็กเวอร์ชันรีลีสของที่เก็บที่คุณต้องการติดตามเป็นระยะ หากแตกต่างจากรุ่นวางจำหน่ายที่คุณบันทึกไว้ในที่เก็บของคุณแล้วเวอร์ชันใหม่จะถูกส่ง
โปรดทราบว่าคุณต้องเตรียมไฟล์ปลายทางก่อน (เช่นรีลีสเวอร์ชัน / swagger-ui-latest.txt) เพื่อให้ไฟล์ที่แก้ไขถูกตรวจสอบเพื่อให้ทำงานได้ นอกจากนี้คุณต้องใช้ขอบเขตโทเค็นแทนการเริ่มต้นrepo
GITHUB_TOKEN
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งนั้นโปรดดูการดำเนินการ Push to Origin จาก GitHub
name: Get latest release version
on:
schedule:
- cron: '0 10 * * *'
jobs:
get-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
- name: Fetch release version
run: |
curl -sL https://api.github.com/repos/swagger-api/swagger-ui/releases/latest | \
jq -r ".tag_name" > release-versions/swagger-ui-latest.txt
- name: Check for modified files
id: git-check
run: echo ::set-output name=modified::$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi)
- name: Commit latest release version
if: steps.git-check.outputs.modified == 'true'
run: |
git config --global user.name 'Your Name'
git config --global user.email 'your-email@users.noreply.github.com'
git commit -am "New release version"
git push
จากนั้นคุณสามารถสร้างเวิร์กโฟลว์ที่สองที่จะทำงานเมื่อเห็นการเปลี่ยนแปลงใด ๆ release-versions
ไปยังไดเรกทอรี
on:
push:
paths:
- 'release-versions/*'
ในเวิร์กโฟลว์นี้คุณสามารถใช้เวอร์ชันที่บันทึกไว้เพื่อดึงเนื้อหาที่คุณต้องการและดำเนินการตามที่คุณต้องการ