Skip to content
code

GitHub Action

JavaScript action

v0.2.2 Latest version

JavaScript action

code

JavaScript action

Run a JavaScript snippet within a GitHub workflow

Installation

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

              

- name: JavaScript action

uses: silverlyra/[email protected]

Learn more about this action in silverlyra/script-action

Choose a version

script-action

An alternative to the official github-script action, with some additional features.

Usage

See action.yml.

- uses: silverlyra/[email protected]
  with:
    # JavaScript source to run (or a script filename)
    script: >
      console.log("Hello, world!");

    # Input data to pass into your script
    input: 'null'

    # If "json", `input` will be parsed as JSON.
    # If "string", your script will see the literal string value of `input`.
    input-encoding: 'json'

    # If "json", the script's return value will be JSON-encoded.
    # If "string", the script's return value will be output as a string.
    result-encoding: 'json'

    # Directory to change into
    cwd: '.'

    github-token: ${{ github.token }}

Script

The JavaScript passed as the script input will have the following values predefined:

  • input: The input passed to the action, via with:
  • env: An object containing all environment variables (process.env)
  • github: A GitHub REST API client

Scripts also have access to some helper functions:

  • fetch: The fetch function
  • readEvent: Read the GitHub event JSON file off of disk; return the event name and its data
  • shell: Spawn a process and (optionally) capture its output

These packages are also available:

  • fs: The Node.js fs/promises module
  • path: The Node.js path module
  • artifact: The @actions/artifact NPM package
  • chalk: The chalk NPM package
  • core: The @actions/core NPM package
  • exec: The @actions/exec NPM package
  • glob: The @actions/glob NPM package
  • io: The @actions/io NPM package