action/github-scriptを使って、ワークフローのコンテキスト内でJavaScriptを実行する
Today I Learned
action/github-scriptは、GitHubワークフローのコンテキスト内でGitHub APIをかんたんに実行できるアクションである。
このアクションではNode.jsの実行環境を提供しているので、シェル芸をせずにJavaScriptで処理を書くことができる。
example.yml
jobs:
say-hello:
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
with:
script: |
console.log("Hello world!");
actions/github-script
の前のステップでnpm install
をすればnpmパッケージを利用できる。
example.yml
jobs:
use-execa:
runs-on: ubuntu-latest
steps:
- uses: actions/setup-node@v3
with:
node-version: 16
- run: npm ci
- uses: actions/github-script@v6
with:
script: |
const execa = require("execa");
const { stdout } = await execa("echo", ["hello", "world"]);
リポジトリ内のファイルにアクセスするには、${{ github.workspace }}
で始まるパスを書く。
example.yml
jobs:
print-stuff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/github-script@v6
with:
script: |
const json = require("${{ github.workspace }}/assets/data.json");
console.log(JSON.stringify(json));