mirror of
https://github.com/oven-sh/setup-bun.git
synced 2025-02-23 18:50:10 +08:00
34 lines
1.3 KiB
JavaScript
34 lines
1.3 KiB
JavaScript
import { getInput, info, setFailed, setOutput, warning } from '@actions/core';
|
|
import getGithubRelease from './utils/getGithubRelease.js';
|
|
import install from './utils/install.js';
|
|
export const exit = (error, miscTestBuilds) => {
|
|
if (miscTestBuilds) {
|
|
warning(error);
|
|
}
|
|
else {
|
|
setFailed(error);
|
|
process.exit();
|
|
}
|
|
};
|
|
const main = async () => {
|
|
try {
|
|
const version = getInput('bun-version');
|
|
const token = getInput('github-token');
|
|
const repository = getInput('repository');
|
|
const miscTestBuilds = (getInput('misc-test-builds') === 'true') || (repository.includes('oven-sh/misc-test-builds'));
|
|
const customDownloadUrl = getInput('custom-download-url') || null;
|
|
if (!version)
|
|
return exit('Invalid bun version.');
|
|
const release = await getGithubRelease(version, token, repository, customDownloadUrl, miscTestBuilds);
|
|
if ((release === null || release === void 0 ? void 0 : release.message) === 'Not Found')
|
|
return exit('Invalid bun version.', miscTestBuilds);
|
|
info(`Going to install release ${release.version}`);
|
|
await install(release, token);
|
|
setOutput('bun-version', release.tag_name);
|
|
}
|
|
catch (e) {
|
|
exit(e);
|
|
}
|
|
};
|
|
main();
|