mirror of
https://github.com/oven-sh/setup-bun.git
synced 2025-02-23 10:40:10 +08:00
fix: warn if bad version
This commit is contained in:
parent
5a78c10e01
commit
4e76ddea17
2
.github/workflows/test.yml
vendored
2
.github/workflows/test.yml
vendored
@ -16,7 +16,7 @@ jobs:
|
||||
bun-version:
|
||||
["latest", "0.1.3", "latest"]
|
||||
misc-test-builds:
|
||||
[false, false, true]
|
||||
[false, true]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
18
dist/index.js
vendored
18
dist/index.js
vendored
@ -1,19 +1,25 @@
|
||||
import { getInput, info, setFailed, setOutput } from '@actions/core';
|
||||
import { getInput, info, setFailed, setOutput, warning } from '@actions/core';
|
||||
import getGithubRelease from './utils/getGithubRelease.js';
|
||||
import install from './utils/install.js';
|
||||
const exit = (error) => {
|
||||
setFailed(error);
|
||||
process.exit();
|
||||
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 miscTestBuilds = (getInput('misc-test-builds') === 'true');
|
||||
if (!version)
|
||||
return exit('Invalid bun version.');
|
||||
const release = await getGithubRelease(version, token);
|
||||
const release = await getGithubRelease(version, token, miscTestBuilds);
|
||||
if ((release === null || release === void 0 ? void 0 : release.message) === 'Not Found')
|
||||
return exit('Invalid bun version.');
|
||||
return exit('Invalid bun version.', miscTestBuilds);
|
||||
info(`Going to install release ${release.version}`);
|
||||
await install(release);
|
||||
setOutput('bun-version', release.tag_name);
|
||||
|
6
dist/utils/getGithubRelease.js
vendored
6
dist/utils/getGithubRelease.js
vendored
@ -1,10 +1,8 @@
|
||||
import { getInput } from '@actions/core';
|
||||
import fetch from 'node-fetch';
|
||||
export default async (version, token) => {
|
||||
const miscTestBuilds = (getInput('misc-test-builds') === 'true');
|
||||
export default async (version, token, miscTestBuilds) => {
|
||||
const repository = miscTestBuilds ? 'oven-sh/misc-test-builds' : 'oven-sh/bun';
|
||||
let url;
|
||||
if (version === 'latest')
|
||||
if (version === 'latest' || miscTestBuilds)
|
||||
url = `https://api.github.com/repos/${repository}/releases/latest`;
|
||||
else
|
||||
url = `https://api.github.com/repos/${repository}/releases/tags/bun-v${version}`;
|
||||
|
17
src/index.ts
17
src/index.ts
@ -1,21 +1,26 @@
|
||||
import { getInput, info, setFailed, setOutput } from '@actions/core';
|
||||
import { getInput, info, setFailed, setOutput, warning } from '@actions/core';
|
||||
import getGithubRelease from './utils/getGithubRelease.js';
|
||||
import install from './utils/install.js';
|
||||
|
||||
const exit = (error: string) => {
|
||||
setFailed(error);
|
||||
process.exit();
|
||||
const exit = (error: string, miscTestBuilds?: boolean) => {
|
||||
if (miscTestBuilds) {
|
||||
warning(error);
|
||||
} else {
|
||||
setFailed(error);
|
||||
process.exit();
|
||||
}
|
||||
}
|
||||
|
||||
const main = async() => {
|
||||
try {
|
||||
const version = getInput('bun-version');
|
||||
const token = getInput('github-token');
|
||||
const miscTestBuilds = (getInput('misc-test-builds') === 'true');
|
||||
|
||||
if (!version) return exit('Invalid bun version.');
|
||||
|
||||
const release = await getGithubRelease(version, token);
|
||||
if (release?.message === 'Not Found') return exit('Invalid bun version.');
|
||||
const release = await getGithubRelease(version, token, miscTestBuilds);
|
||||
if (release?.message === 'Not Found') return exit('Invalid bun version.', miscTestBuilds);
|
||||
|
||||
info(`Going to install release ${release.version}`);
|
||||
|
||||
|
@ -15,11 +15,10 @@ export interface Release {
|
||||
version: string;
|
||||
}
|
||||
|
||||
export default async(version: string, token: string): Promise<Release> => {
|
||||
const miscTestBuilds = (getInput('misc-test-builds') === 'true');
|
||||
export default async(version: string, token: string, miscTestBuilds: boolean): Promise<Release> => {
|
||||
const repository = miscTestBuilds ? 'oven-sh/misc-test-builds' : 'oven-sh/bun'
|
||||
let url;
|
||||
if (version === 'latest') url = `https://api.github.com/repos/${repository}/releases/latest`;
|
||||
if (version === 'latest' || miscTestBuilds) url = `https://api.github.com/repos/${repository}/releases/latest`;
|
||||
else url = `https://api.github.com/repos/${repository}/releases/tags/bun-v${version}`;
|
||||
|
||||
const release: any = await (await fetch(url, {
|
||||
|
Loading…
x
Reference in New Issue
Block a user