Files
speckle-automate-github-action/src/main.ts
T

45 lines
1.7 KiB
TypeScript

import * as core from '@actions/core'
import { registerSpeckleFunction } from './registerspecklefunction.js'
import fileUtil from './filesystem/files.js'
async function run(): Promise<void> {
try {
const speckleAutomateUrlRaw = core.getInput('speckle_automate_url')
const speckleTokenRaw = core.getInput('speckle_token')
core.setSecret(speckleTokenRaw)
const speckleFunctionPathRaw = core.getInput('speckle_function_path')
const speckleFunctionIdRaw = core.getInput('speckle_function_id')
const speckleFunctionInputSchema = core.getInput('speckle_function_input_schema')
const speckleFunctionCommand = core.getInput('speckle_function_command')
const gitRefName = process.env.GITHUB_REF_NAME
const gitRefType = process.env.GITHUB_REF_TYPE
const gitCommitShaRaw = process.env.GITHUB_SHA
if (!gitCommitShaRaw) throw new Error('GITHUB_REF_NAME is not defined')
if (!gitRefName) throw new Error('GITHUB_REF_NAME is not defined')
if (!gitRefType) throw new Error('GITHUB_REF_TYPE is not defined')
const speckleAutomateHost = new URL(speckleAutomateUrlRaw).host
const { versionId } = await registerSpeckleFunction({
speckleServerUrl: speckleAutomateUrlRaw,
speckleToken: speckleTokenRaw,
speckleFunctionPath: speckleFunctionPathRaw,
speckleFunctionId: speckleFunctionIdRaw,
speckleFunctionInputSchema,
speckleFunctionCommand,
versionTag: gitRefType === 'tag' ? gitRefName : gitCommitShaRaw,
commitId: gitCommitShaRaw,
logger: core,
fileSystem: fileUtil
})
core.setOutput('version_id', versionId)
core.setOutput('speckle_automate_host', speckleAutomateHost)
} catch (error) {
if (error instanceof Error) core.setFailed(error.message)
}
}
run()