У меня есть файл action.yml
с выходными данными:
name: My action
description: executes bash script
inputs:
some_input:
description: some input
required: true
outputs:
some_output:
description: some output
runs:
using: node12
main: dist/index.js
Это действие является действием узла, которое выполняет только сценарий bash. Я хочу дать этому действию некоторый ввод и скрипт bash, чтобы дать некоторый вывод.
index. js:
const core = require("@actions/core");
const exec = require("@actions/exec");
async function run() {
try {
const someInput = core.getInput('some_input');
await exec.exec(`bash ${__dirname}/some-bash-script.sh ${someInput}`);
} catch (error) {
core.setFailed(error.message);
}
}
run();
Bash:
#!/bin/bash
set -e
echo ::set-output name=some_output="My output ($1)"
Рабочий процесс yaml:
name: maven deploy
on:
push:
branches:
- '**'
jobs:
mine:
runs-on: ubuntu-latest
steps:
- uses: jactor-rises/my-action@v1
id: mine
with:
some_input: this input
- run: echo ${{ steps.mine.outputs.some_output }}
Это правильный способ сделать это? Он не работает в моем рабочем процессе ... Как я могу использовать этот вывод в своем рабочем процессе?
На этот вопрос есть ответ на GitHub, но я все еще изо всех сил: https://github.community/t5/GitHub-Actions/How-to-set-action-output-as-defined-in-action-yml-from-a-bash/m-p/50366