Await the completion of a foreign repository Workflow Run given the Run ID.
This Action exists as a workaround for the issue where you cannot await the completion of a dispatched action.
This action requires being able to get the run ID from a dispatched action, this can be achieved through another Action i've created, return-dispatch.
Should a remote workflow run fail, this action will attempt to output which step failed, with a link to the workflow run itself.
An example using both of these actions is documented below.
Once you have configured your remote repository to work as expected with the return-dispatch
action, include await-remote-run
as described below.
steps:
- name: Dispatch an action and get the run ID
uses: codex-/return-dispatch@v1
id: return_dispatch
with:
token: ${{ github.token }}
repo: repository-name
owner: repository-owner
workflow: automation-test.yml
- name: Await Run ID ${{ steps.return_dispatch.outputs.run_id }}
uses: Codex-/[email protected]
with:
token: ${{ github.token }}
repo: return-dispatch
owner: codex-
run_id: ${{ steps.return_dispatch.outputs.run_id }}
run_timeout_seconds: 300 # Optional
poll_interval_ms: 5000 # Optional
The permissions required for this action to function correctly are:
repo
scope- You may get away with simply having
repo:public_repo
repo
is definitely needed if the repository is private.
- You may get away with simply having
actions:read
For the sake of transparency please note that this action uses the following API calls:
- Get a workflow run
- GET
/repos/{owner}/{repo}/actions/runs/{run_id}
- Permissions:
repo
actions:read
- GET
- List jobs for a workflow run
- GET
/repos/{owner}/{repo}/actions/runs/{run_id}/jobs
- Permissions:
repo
actions:read
- GET
For more information please see api.ts.
If you want to use the result of a Workflow Run from a remote repository to complete a check locally, i.e. you have automated tests on another repository and don't want the local checks to pass if the remote fails.