Zależności między przepływami pracy dla akcji Github

9

Mam monorepo z dwoma przepływami pracy:

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

To nie działa, nie mogę odwołać się do zadania w innym przepływie pracy:

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

Czy istnieje sposób na utworzenie zależności między przepływami pracy?

Chcę test.ymlwtedy uruchamiać deploy.ymltagi i test.ymltylko na żądanie push i pull. Nie chcę powielać zadań między przepływami pracy.

Guillaume Vincent
źródło

Odpowiedzi:

3

Czy istnieje sposób na utworzenie zależności między przepływami pracy?

Nie sądzę, aby było to w tej chwili możliwe. Być może jest to funkcja, którą dodadzą w przyszłości. Osobiście uważam, że bardziej prawdopodobne jest, że funkcja taka jak kule CircleCI zostanie dodana w celu udostępniania wspólnych sekcji przepływów pracy.

W przypadku alternatywnego rozwiązania, czy umieszczenie tego wszystkiego w tym samym przepływie pracy jak dla Ciebie? deploy-packagesZadanie zostanie wykonane tylko wtedy, gdy tag zaczynając vjest popychany.

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"
peterevans
źródło