Switch to composite action

This commit is contained in:
Taiki Endo
2023-01-16 20:34:02 +09:00
parent 0c4592b32a
commit 2a60fd3151
2 changed files with 10 additions and 30 deletions

View File

@@ -11,6 +11,14 @@ inputs:
required: false
default: 'true'
# Note:
# - inputs.* should be manually mapped to INPUT_* due to https://github.com/actions/runner/issues/665
# - Use GITHUB_*/RUNNER_* instead of github.*/runner.* due to https://github.com/actions/runner/issues/2185
runs:
using: node16
main: main.js
using: composite
steps:
- run: bash --noprofile --norc "${GITHUB_ACTION_PATH:?}/main.sh"
shell: bash
env:
INPUT_TOOL: ${{ inputs.tool }}
INPUT_CHECKSUM: ${{ inputs.checksum }}

28
main.js
View File

@@ -1,28 +0,0 @@
// This is a script that just calls the bash script that does the main
// processing of the action. It works like a composite action that calls
// a single bash script.
//
// This was originally a trick adopted to make bash script-based actions work
// without docker before composite actions were supported. However, due to
// various problems with composite actions, this trick is still needed:
// - https://github.com/actions/runner/issues/665
// - https://github.com/actions/runner/issues/2185
// Although there are ways to work around these like cache-cargo-install-action does:
// https://github.com/taiki-e/cache-cargo-install-action/blob/v1.0.1/action.yml#L9-L11
const { execFileSync } = require('child_process');
function main() {
try {
execFileSync(
'bash',
['--noprofile', '--norc', `${__dirname}/main.sh`],
{ stdio: 'inherit' }
);
} catch (e) {
console.log(`::error::${e.message}`);
process.exit(1);
}
}
main();