Инициировать действие GitHub в подмодулях из действия родительского репозитория

Допустим, у меня есть два репозитория, parentrepo и childrepo. В дочернем репо есть действие github (пример из документы):

name: GitHub Actions Demo
on: workflow_dispatch
jobs:
  Explore-GitHub-Actions:
    runs-on: ubuntu-latest
    steps:
      - run: echo "? The job was automatically triggered by a ${{ github.event_name }} event."
      - run: echo "? This job is now running on a ${{ runner.os }} server hosted by GitHub!"
      - run: echo "? The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
      - name: Check out repository code
        uses: actions/checkout@v3
      - run: echo "? The ${{ github.repository }} repository has been cloned to the runner."
      - run: echo "?️ The workflow is now ready to test your code on the runner."
      - name: List files in the repository
        run: |
          ls ${{ github.workspace }}
      - run: echo "? This job's status is ${{ job.status }}."

Я добавил репозиторий childrepo в качестве подмодуля репозитория parentrepo. Теперь из действия GitHub в родительском репо я хочу запустить задание в подмодуле дочернего репо:

name: build
on:
  workflow_dispatch:
    
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Checkout submodules
        run: git submodule update --init --recursive

      - name: Build
        uses: ./childrepo/.github/workflows/action.yml

но он не работает с ошибкой:

Error: Can't find 'action.yml', 'action.yaml' or 'Dockerfile' under '/home/runner/work/parentrepo/parentrepo/childrepo/.github/workflows'. Did you forget to run actions/checkout before running your local action?

Как мне это сделать?

Редкие достижения на Github ✨
Редкие достижения на Github ✨
Редкая коллекция доступна в профиле на GitHub ✨
0
0
31
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ключевое слово uses не предназначено для запуска действий в другом репозитории. Он может только получить действие или повторно используемый рабочий процесс из другого репо и использовать его для себя.

Для этого нет родного функционала. Однако диспетчеризация рабочего процесса в другом репозитории возможна через API. См. Как вызвать workflow_dispatch из Github API?

Другие вопросы по теме