Skip to content
You're viewing an older version of this GitHub Action. Do you want to see the latest version instead?
play

GitHub Action

Command Result Action

v1

Command Result Action

play

Command Result Action

Runs a single command and captures the outputs

Installation

Copy and paste the following snippet into your .yml file.

              

- name: Command Result Action

uses: gh640/command-result-action@v1

Learn more about this action in gh640/command-result-action

Choose a version

Command Result Action

This is a reusable action for GitHub Actions. This action just runs a single command and captures the outputs. Easy to use and useful to capture multi-line outputs.

Motivation

The way to capture a command's multi-line standard output / error is not intuitive on GitHub Actions.

Usage

Use this action gh640/command-result-action in your workflow with command input.

uses: gh640/command-result-action@v1
with:
  command: npm outdated
id: myaction

You can optionally change the working directory by passing cwd as input:

uses: gh640/command-result-action@v1
with:
  command: npm outdated
  cwd: ./src
id: myaction

You can use the output in subsequent steps. In the above case, the following variables are available:

  • ${{ steps.myaction.outputs.exitCode }}
  • ${{ steps.myaction.outputs.stdout }}
  • ${{ steps.myaction.outputs.stderr }}

Available inputs

name required description
command Command to run
cwd Working directory

Available outputs

name description
exitCode Exit code of the command
stdout Stdout of the command
stderr Stderr of the command

Different approaches to capture standard output / error

actions/github-script action

This action uses @actions/exec and @actions/core. The behavior of this action is almost same as one of the following action with actions/github-script:

uses: actions/github-script@v6
with:
  script: |
    const result = await exec.getExecOutput('npm outdated', [], {
      ignoreReturnCode: true,
    })
    core.setOutput('exitCode', result.exitCode)
    core.setOutput('stdout', result.stdout)
    core.setOutput('stderr', result.stderr)
id: myaction

Working Example

Questions

Can I execute multiple commands with this action?

No. This action supports only one command.