diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f90101c..a869529 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -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 diff --git a/dist/index.js b/dist/index.js index b386469..4ca99f5 100644 --- a/dist/index.js +++ b/dist/index.js @@ -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); diff --git a/dist/utils/getGithubRelease.js b/dist/utils/getGithubRelease.js index ab86728..f2d5a66 100644 --- a/dist/utils/getGithubRelease.js +++ b/dist/utils/getGithubRelease.js @@ -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}`; diff --git a/src/index.ts b/src/index.ts index 8e66159..3927f37 100644 --- a/src/index.ts +++ b/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}`); diff --git a/src/utils/getGithubRelease.ts b/src/utils/getGithubRelease.ts index 4c39abb..1de7186 100644 --- a/src/utils/getGithubRelease.ts +++ b/src/utils/getGithubRelease.ts @@ -15,11 +15,10 @@ export interface Release { version: string; } -export default async(version: string, token: string): Promise => { - const miscTestBuilds = (getInput('misc-test-builds') === 'true'); +export default async(version: string, token: string, miscTestBuilds: boolean): Promise => { 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, {