Expose installed Supabase CLI version via output (#170)

Expose Supabase CLI version via output
This commit is contained in:
Mark Vainomaa
2023-05-17 13:52:44 +03:00
committed by GitHub
parent 8063edec5e
commit 8b3b75ec99
3 changed files with 23 additions and 1 deletions

View File

@@ -6,6 +6,9 @@ inputs:
description: Version of Supabase CLI to install
required: false
default: 1.28.3
outputs:
version:
description: Version of installed Supabase CLI
runs:
using: node16
main: dist/index.js

View File

@@ -1,7 +1,7 @@
import * as core from '@actions/core'
import * as tc from '@actions/tool-cache'
import gte from 'semver/functions/gte'
import {getDownloadUrl} from './utils'
import {getDownloadUrl, determineInstalledVersion} from './utils'
export const CLI_CONFIG_REGISTRY = 'SUPABASE_INTERNAL_IMAGE_REGISTRY'
@@ -20,6 +20,10 @@ async function run(): Promise<void> {
// Expose the tool by adding it to the PATH
core.addPath(pathToCLI)
// Expose installed tool version
const determinedVersion = await determineInstalledVersion()
core.setOutput('version', determinedVersion)
// Use GHCR mirror by default
if (version.toLowerCase() === 'latest' || gte(version, '1.28.0')) {
core.exportVariable(CLI_CONFIG_REGISTRY, 'ghcr.io')

View File

@@ -1,5 +1,9 @@
import {exec} from 'child_process'
import os from 'os'
import lt from 'semver/functions/lt'
import {promisify} from 'util'
const doExec = promisify(exec)
// arch in [arm, arm64, x64...] (https://nodejs.org/docs/latest-v16.x/api/os.html#osarch)
// return value in [amd64, arm64, arm]
@@ -31,3 +35,14 @@ export const getDownloadUrl = async (version: string): Promise<string> => {
}
return `https://github.com/supabase/cli/releases/download/v${version}/${filename}`
}
export const determineInstalledVersion = async (): Promise<string> => {
const {stdout} = await doExec('supabase --version')
const version = stdout.trim()
if (!version) {
throw new Error('Could not determine installed Supabase CLI version')
}
return version
}