fix: warn if bad version

This commit is contained in:
xHyroM 2022-07-12 18:53:38 +02:00
parent 5a78c10e01
commit 4e76ddea17
5 changed files with 28 additions and 20 deletions

View File

@ -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

18
dist/index.js vendored
View File

@ -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) => {
setFailed(error); if (miscTestBuilds) {
process.exit(); warning(error);
}
else {
setFailed(error);
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);

View File

@ -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}`;

View File

@ -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) => {
setFailed(error); if (miscTestBuilds) {
process.exit(); warning(error);
} else {
setFailed(error);
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}`);

View File

@ -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, {