4º. 1er cuatrimestre. Itinerario de Sistemas de la Información. Grado en Ingeniería Informática. ULL
A partir de la versión 1.9 tenemos el comando gh workflow
para poder acceder a nuestros github workflows desde la terminal:
✗ gh --version
gh version 1.9.1 (2021-04-15)
https://github.com/cli/cli/releases/tag/v1.9.1
✗ gh help workflow
List, view, and run workflows in GitHub Actions.
USAGE
gh workflow <command> [flags]
CORE COMMANDS
disable: Disable a workflow
enable: Enable a workflow
list: List workflows
run: Run a workflow by creating a workflow_dispatch event
view: View the summary of a workflow
FLAGS
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
INHERITED FLAGS
--help Show help for command
LEARN MORE
Use 'gh <command> <subcommand> --help' for more information about a command.
Read the manual at https://cli.github.com/manual
➜ please-Daniel-del-Castillo git:(main) ✗ gh workflow list
Test active 8116703
➜ please-Daniel-del-Castillo git:(main) ✗ gh workflow view
? Select a workflow Test (test.yaml)
Test - test.yaml
ID: 8116703
Total runs 21
Recent runs
✓ 1.1.1 Test v1.1.1 push 755714052
✓ 1.1.1 Test main push 755713933
✓ Merge branch 'main' of github.com:ULL-ESIT-PL-2021/please-Daniel... Test main push 755346331
✓ Update README.md Test main push 755342257
✓ Add a REPL Test main push 755328010
To see more runs for this workflow, try: gh run list --workflow test.yaml
To see the YAML for this workflow, try: gh workflow view test.yaml --yaml
➜ please-Daniel-del-Castillo git:(main) ✗ gh workflow view --help
View the summary of a workflow
USAGE
gh workflow view [<workflow-id> | <workflow-name> | <filename>] [flags]
FLAGS
-r, --ref string The branch or tag name which contains the version of the workflow file you'd like to view
-w, --web Open workflow in the browser
-y, --yaml View the workflow yaml file
INHERITED FLAGS
--help Show help for command
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
EXAMPLES
# Interactively select a workflow to view
$ gh workflow view
# View a specific workflow
$ gh workflow view 0451
LEARN MORE
Use 'gh <command> <subcommand> --help' for more information about a command.
Read the manual at https://cli.github.com/manual
✗ gh help workflow run
Create a workflow_dispatch event for a given workflow.
This command will trigger GitHub Actions to run a given workflow file.
The given workflow file must support a workflow_dispatch 'on'
trigger in order to be run in this way.
If the workflow file supports inputs, they can be specified in a few ways:
- Interactively
- via -f or -F flags
- As JSON, via STDIN
USAGE
gh workflow run [<workflow-id> | <workflow-name>] [flags]
FLAGS
-F, --field key=value Add a string parameter in key=value format, respecting @ syntax
--json Read workflow inputs as JSON via STDIN
-f, --raw-field key=value Add a string parameter in key=value format
-r, --ref string The branch or tag name which contains the version of the workflow file you'd like to run
INHERITED FLAGS
--help Show help for command
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
EXAMPLES
# Have gh prompt you for what workflow you'd like to run and interactively collect inputs
$ gh workflow run
# Run the workflow file 'triage.yml' at the remote's default branch
$ gh workflow run triage.yml
# Run the workflow file 'triage.yml' at a specified ref
$ gh workflow run triage.yml --ref my-branch
# Run the workflow file 'triage.yml' with command line inputs
$ gh workflow run triage.yml -f name=scully -f greeting=hello
# Run the workflow file 'triage.yml' with JSON via standard input
$ echo '{"name":"scully", "greeting":"hello"}' | gh workflow run triage.yml --json
LEARN MORE
Use 'gh <command> <subcommand> --help' for more information about a command.
Read the manual at https://cli.github.com/manual
Set this workflow file:
➜ use-hello-world-javascript-action git:(master) cat .github/workflows/manual.yml
name: Manually triggered workflow
on:
workflow_dispatch:
inputs:
name:
description: 'Person to greet'
required: true
default: 'Mona the Octocat'
home:
description: 'location'
required: false
default: 'The Octoverse'
jobs:
say_hello:
runs-on: ubuntu-latest
steps:
- run: |
echo "Hello $!"
echo "- in $!"
This example defines the name
and home
inputs and prints them using the github.event.inputs.name
and github.event.inputs.home
contexts. If a home isn’t provided, the default value 'The Octoverse'
is printed.
You can use the GitHub API to trigger a webhook event called repository_dispatch
when you want to trigger a workflow for activity that happens outside of GitHub.
For more information, see “Create a repository dispatch event.”
To trigger the custom repository_dispatch
webhook event, you must send a POST
request to a GitHub API endpoint and provide an event_type
name to describe the activity type. To trigger a workflow run, you must also configure your workflow to use the repository_dispatch
event.
Now, using gh
we can run it manually:
➜ use-hello-world-javascript-action git:(master) gh workflow run manual.yml -f name="PL at ULL" -f home="La Laguna"
✓ Created workflow_dispatch event for manual.yml at master
To see runs for this workflow, try: gh run list --workflow=manual.yml
➜ use-hello-world-javascript-action git:(master) gh run list --workflow=manual.yml
✓ .github Manually triggered workflow master workflow_dispatch 758223539
For details on a run, try: gh run view <run-id>
➜ use-hello-world-javascript-action git:(master) gh run view 758223539
Refreshing run status every 3 seconds. Press Ctrl+C to quit.
✓ master Manually triggered workflow · 758227829
Triggered via workflow_dispatch less than a minute ago
JOBS
✓ say_hello in 1s (ID 2368935232)
✓ Set up job
✓ Run echo "Hello PL at ULL!"
✓ Complete job
✓ Run Manually triggered workflow (758227829) completed with 'success'