45 lines
1.6 KiB
JavaScript
45 lines
1.6 KiB
JavaScript
import core from "@actions/core";
|
|
import * as hc from '@actions/http-client';
|
|
import fs from 'fs'
|
|
import FormData from 'form-data'
|
|
|
|
async function run() {
|
|
try {
|
|
const token = core.getInput("token", { required: true })
|
|
const appVersion = core.getInput("app_version", { required: true })
|
|
const appID = core.getInput("app_id", { required: true })
|
|
const appFile = core.getInput("app_file", { required: true })
|
|
const description = core.getInput("description")
|
|
const sandbox = core.getInput("sandbox", {}) || false
|
|
|
|
const client = new hc.HttpClient('ocamba-publish', [], {
|
|
allowRetries: true,
|
|
maxRetries: 3
|
|
});
|
|
|
|
const form = new FormData()
|
|
form.append('file', fs.createReadStream(appFile))
|
|
form.append('description', 'development')
|
|
let headers = form.getHeaders()
|
|
headers.Authorization = `Bearer ${token}`
|
|
|
|
let url = sandbox ? 'https://dev-api.ocamba.com' : 'https://api.ocamba.com'
|
|
|
|
let response = await client.put(`${url}/v2/ocamba/developer/apps/${appID}/versions/${appVersion}`, form, headers)
|
|
|
|
const body = await response.readBody();
|
|
const statusCode = response.message.statusCode || 500;
|
|
if (statusCode >= 400) {
|
|
throw new Error(`(${statusCode}) ${body}`)
|
|
}
|
|
|
|
let data = JSON.parse(body)
|
|
core.setOutput('artifact_url', data.source)
|
|
console.log(`🎉 App ready at ${data.source}`)
|
|
} catch (error) {
|
|
if (core.isDebug()) console.error(error)
|
|
core.setFailed(error.message);
|
|
}
|
|
}
|
|
|
|
run() |