ทริกเกอร์แอคชั่น GitHub เมื่อที่เก็บอื่นสร้างรีลีสใหม่


9

ฉันกำลังพยายามสร้างเวิร์กโฟลว์ GitHub ที่จะถูกเรียกใช้เมื่อที่เก็บข้อมูลอื่นสร้างรีลีสใหม่

ในเอกสารที่มีวรรค: on.event_name.typesที่จะevent_namerelease

คำถามคือ: มีวิธีการอ้างอิงถึงreleaseเหตุการณ์ของพื้นที่เก็บข้อมูลอื่นหรือไม่?


1
ฉันไม่เชื่ออย่างนั้น คุณจะต้องเข้าถึง repo ที่สร้างการเปิดตัว
osowskit

คำตอบ:


7

มีวิธีใดบ้างในการอ้างถึงกิจกรรมเผยแพร่ของที่เก็บอื่น?

ค่อนข้างแน่ใจว่าคุณสมบัตินี้ไม่มีอยู่

หากคุณมีสิทธิ์เข้าถึงที่เก็บสร้างการเผยแพร่คุณสามารถเรียกเหตุการณ์ 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/*'

ในเวิร์กโฟลว์นี้คุณสามารถใช้เวอร์ชันที่บันทึกไว้เพื่อดึงเนื้อหาที่คุณต้องการและดำเนินการตามที่คุณต้องการ


1
น่าเศร้าที่คุณยืนยันลางสังหรณ์ของฉัน นอกจากนี้ขอขอบคุณสำหรับการแบ่งปันแนวทางของคุณ
PierDipi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.