mirror of
https://github.com/oven-sh/setup-bun.git
synced 2025-02-23 18:50: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:
|
bun-version:
|
||||||
["latest", "0.1.3", "latest"]
|
["latest", "0.1.3", "latest"]
|
||||||
misc-test-builds:
|
misc-test-builds:
|
||||||
[false, false, true]
|
[false, true]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
|
14
dist/index.js
vendored
14
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 getGithubRelease from './utils/getGithubRelease.js';
|
||||||
import install from './utils/install.js';
|
import install from './utils/install.js';
|
||||||
const exit = (error) => {
|
const exit = (error, miscTestBuilds) => {
|
||||||
|
if (miscTestBuilds) {
|
||||||
|
warning(error);
|
||||||
|
}
|
||||||
|
else {
|
||||||
setFailed(error);
|
setFailed(error);
|
||||||
process.exit();
|
process.exit();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
const main = async () => {
|
const main = async () => {
|
||||||
try {
|
try {
|
||||||
const version = getInput('bun-version');
|
const version = getInput('bun-version');
|
||||||
const token = getInput('github-token');
|
const token = getInput('github-token');
|
||||||
|
const miscTestBuilds = (getInput('misc-test-builds') === 'true');
|
||||||
if (!version)
|
if (!version)
|
||||||
return exit('Invalid bun 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')
|
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}`);
|
info(`Going to install release ${release.version}`);
|
||||||
await install(release);
|
await install(release);
|
||||||
setOutput('bun-version', release.tag_name);
|
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';
|
import fetch from 'node-fetch';
|
||||||
export default async (version, token) => {
|
export default async (version, token, miscTestBuilds) => {
|
||||||
const miscTestBuilds = (getInput('misc-test-builds') === 'true');
|
|
||||||
const repository = miscTestBuilds ? 'oven-sh/misc-test-builds' : 'oven-sh/bun';
|
const repository = miscTestBuilds ? 'oven-sh/misc-test-builds' : 'oven-sh/bun';
|
||||||
let url;
|
let url;
|
||||||
if (version === 'latest')
|
if (version === 'latest' || miscTestBuilds)
|
||||||
url = `https://api.github.com/repos/${repository}/releases/latest`;
|
url = `https://api.github.com/repos/${repository}/releases/latest`;
|
||||||
else
|
else
|
||||||
url = `https://api.github.com/repos/${repository}/releases/tags/bun-v${version}`;
|
url = `https://api.github.com/repos/${repository}/releases/tags/bun-v${version}`;
|
||||||
|
13
src/index.ts
13
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 getGithubRelease from './utils/getGithubRelease.js';
|
||||||
import install from './utils/install.js';
|
import install from './utils/install.js';
|
||||||
|
|
||||||
const exit = (error: string) => {
|
const exit = (error: string, miscTestBuilds?: boolean) => {
|
||||||
|
if (miscTestBuilds) {
|
||||||
|
warning(error);
|
||||||
|
} else {
|
||||||
setFailed(error);
|
setFailed(error);
|
||||||
process.exit();
|
process.exit();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const main = async() => {
|
const main = async() => {
|
||||||
try {
|
try {
|
||||||
const version = getInput('bun-version');
|
const version = getInput('bun-version');
|
||||||
const token = getInput('github-token');
|
const token = getInput('github-token');
|
||||||
|
const miscTestBuilds = (getInput('misc-test-builds') === 'true');
|
||||||
|
|
||||||
if (!version) return exit('Invalid bun version.');
|
if (!version) return exit('Invalid bun version.');
|
||||||
|
|
||||||
const release = await getGithubRelease(version, token);
|
const release = await getGithubRelease(version, token, miscTestBuilds);
|
||||||
if (release?.message === 'Not Found') return exit('Invalid bun version.');
|
if (release?.message === 'Not Found') return exit('Invalid bun version.', miscTestBuilds);
|
||||||
|
|
||||||
info(`Going to install release ${release.version}`);
|
info(`Going to install release ${release.version}`);
|
||||||
|
|
||||||
|
@ -15,11 +15,10 @@ export interface Release {
|
|||||||
version: string;
|
version: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default async(version: string, token: string): Promise<Release> => {
|
export default async(version: string, token: string, miscTestBuilds: boolean): Promise<Release> => {
|
||||||
const miscTestBuilds = (getInput('misc-test-builds') === 'true');
|
|
||||||
const repository = miscTestBuilds ? 'oven-sh/misc-test-builds' : 'oven-sh/bun'
|
const repository = miscTestBuilds ? 'oven-sh/misc-test-builds' : 'oven-sh/bun'
|
||||||
let url;
|
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}`;
|
else url = `https://api.github.com/repos/${repository}/releases/tags/bun-v${version}`;
|
||||||
|
|
||||||
const release: any = await (await fetch(url, {
|
const release: any = await (await fetch(url, {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user