generated from actions/javascript-action
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
67 lines (55 loc) · 1.85 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//const path = require('path');
const core = require('@actions/core');
const tc = require('@actions/tool-cache');
const path = require('path');
const os = require('os');
function getDownloadURL(version,tool)
{
const downloadURL = encodeURI('https://pkgs.dev.azure.com/uipath/Public.Feeds/_apis/packaging/feeds/UiPath-Official/nuget/packages/'+tool+'/versions/'+version+'/content');
console.log("Download URL: " + downloadURL);
return downloadURL;
}
function getTool(){
var operatingSystem = os.type();
console.log("Operating system: " + operatingSystem);
if(operatingSystem.toLowerCase().includes("windows")){
console.log("Retrieving Windows cli tool")
return "UiPath.CLI.Windows";
}
else {
return "UiPath.CLI";
}
}
function getCliPath(extractPath){
var fullPathToCli;
console.log('extractPath: ' + extractPath);
fullPathToCli = path.join(extractPath,'tools');
console.log('uipcli path: ' + fullPathToCli);
return fullPathToCli;
}
async function setup() {
try {
// Get version of tool to be installed
const version = core.getInput('version');
console.log(version);
// Get CLI for the correct operating system
const tool = getTool();
// Download the specific version of the tool
const downloadPath = await tc.downloadTool(getDownloadURL(version,tool));
const filename = path.basename(downloadPath);
console.log('Filename: ' + filename);
console.log('Download Path: ' + downloadPath);
const extractPath = await tc.extractZip(downloadPath);
console.log('Tool extracted to ' + extractPath);
const pathToCLI = getCliPath(extractPath);
console.log('Adding ' + pathToCLI + ' to PATH');
// Expose the tool by adding it to the PATH
core.addPath(pathToCLI);
} catch (error) {
core.setFailed(error.Message);
}
}
module.exports = setup
if (require.main === module) {
setup();
}