Sự phụ thuộc giữa các quy trình công việc trên các hành động của Github


9

Tôi có một monorepo với hai quy trình công việc:

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

Điều này không hiệu quả, tôi không thể tham khảo một công việc trong quy trình công việc khác:

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

Có cách nào để tạo ra sự phụ thuộc giữa các quy trình công việc không?

Những gì tôi muốn là chạy test.ymlsau đó deploy.ymltrên các thẻ, và test.ymlchỉ theo yêu cầu đẩy và kéo. Tôi không muốn sao chép công việc giữa các quy trình công việc.

Câu trả lời:


3

Có cách nào để tạo ra sự phụ thuộc giữa các quy trình công việc không?

Tôi không nghĩ rằng điều này là có thể vào lúc này. Có lẽ đó là một tính năng họ sẽ thêm vào trong tương lai. Cá nhân, tôi nghĩ nhiều khả năng một tính năng như quả cầu của CircleCI sẽ được thêm vào để chia sẻ các phần chung của quy trình công việc.

Đối với một giải pháp thay thế, việc đưa tất cả vào cùng một quy trình như công việc sau đây cho bạn? Công deploy-packagesviệc sẽ chỉ thực hiện nếu một thẻ bắt đầu bằng vđang được đẩy.

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"
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.