การพึ่งพาระหว่างเวิร์กโฟลว์กับการกระทำของ Github


9

ฉันมี monorepo ที่มีสองเวิร์กโฟลว์:

.github/workflows/test.yml

name: test

on: [push, pull_request]

jobs:
  test-packages:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: test packages
        run: |
          yarn install
          yarn test
...

.github/workflows/deploy.yml

  deploy-packages:
    runs-on: ubuntu-latest
    needs: test-packages
    steps:
      - uses: actions/checkout@v1
      - name: deploy packages
        run: |
          yarn deploy
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
...

ไม่ทำงานฉันไม่สามารถอ้างอิงงานในเวิร์กโฟลว์อื่น:

### ERRORED 19:13:07Z

- Your workflow file was invalid: The pipeline is not valid. The pipeline must contain at least one job with no dependencies.

มีวิธีสร้างการพึ่งพาระหว่างเวิร์กโฟลว์หรือไม่

สิ่งที่ฉันต้องการคือการทำงานtest.ymlแล้วdeploy.ymlในแท็กและtest.ymlเฉพาะในการผลักดันและขอดึง ฉันไม่ต้องการทำซ้ำงานระหว่างเวิร์กโฟลว์

คำตอบ:


3

มีวิธีสร้างการพึ่งพาระหว่างเวิร์กโฟลว์หรือไม่

ฉันไม่คิดว่ามันเป็นไปได้ในขณะนี้ บางทีมันอาจเป็นคุณสมบัติที่พวกเขาจะเพิ่มในอนาคต โดยส่วนตัวแล้วฉันคิดว่าเป็นไปได้มากที่ฟีเจอร์ orbs ของ CircleCI จะถูกเพิ่มเข้ามาเพื่อแชร์ส่วนของเวิร์กโฟลว์ทั่วไป

สำหรับโซลูชันทางเลือกวางทั้งหมดไว้ในเวิร์กโฟลว์เดียวกันเหมือนกับงานต่อไปนี้สำหรับคุณหรือไม่ deploy-packagesงานจะดำเนินการหากแท็กที่เริ่มต้นด้วยvจะถูกผลัก

name: my workflow
on: [push, pull_request]
jobs:
  test-packages:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v1
      - name: test packages
        run: echo "Running tests"
  deploy-packages:
    if: startsWith(github.ref, 'refs/tags/v')
    runs-on: ubuntu-latest
    needs: test-packages
    steps:
      - uses: actions/checkout@v1
      - name: deploy packages
        run: echo "Deploying packages"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.