Залежності між робочими потоками від дій Github


9

У мене монорепо з двома робочими процесами:

.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лише на запит push і pull. Я не хочу дублювати завдання між робочими потоками.

Відповіді:


3

Чи є спосіб створити залежність між робочими потоками?

Не думаю, що наразі це можливо. Можливо, це особливість, яку вони додадуть у майбутньому. Особисто я вважаю, що більш ймовірно, що така функція, як кулі 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"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.