Github Eylemlerindeki İş Akışları Arasındaki Bağımlılıklar


9

İki iş akışı olan bir monorepo var:

.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 }}
...

Bu işe yaramıyor, başka bir iş akışındaki bir işe başvuramıyorum:

### 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.

İş akışları arasında bağımlılık yaratmanın bir yolu var mı?

Ne istiyorum test.ymlsonra deploy.ymletiketleri üzerinde çalıştırmak ve test.ymlsadece itme ve çekme isteği. İş akışları arasında işleri çoğaltmak istemiyorum.

Yanıtlar:


4

İş akışları arasında bağımlılık yaratmanın bir yolu var mı?

Şu anda bunun mümkün olduğunu düşünmüyorum. Belki de gelecekte ekleyecekleri bir özellik. Şahsen, CircleCI'nın küreleri gibi bir özelliğin iş akışlarının ortak bölümlerini paylaşmak için eklenmesinin daha olası olduğunu düşünüyorum.

Alternatif bir çözüm için, hepsini sizin için aşağıdaki gibi aynı iş akışına koymak mı? deploy-packagesBir etiket ile başlayan eğer iş sadece çalıştırır vitiliyor.

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"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.