Skip to content

silverlyra/script-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

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