read_yaml_action/index.js (76 lines of code) (raw):
const core = require('@actions/core');
const github = require('@actions/github');
const yaml = require('js-yaml');
const fs = require('fs');
checkGenerateEntity()
try {
const configData = core.getInput('config');
fs.readFile(configData, 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
console.log(data);
const SCHEMA = yaml.FAILSAFE_SCHEMA;
const configYaml = yaml.load(data, { schema: SCHEMA });
// TODO Verify if variables do not exist or are empty
const namespace = String(configYaml["variables"]["namespace"]);
const postfix = String(configYaml["variables"]["postfix"]);
const environment = String(configYaml["variables"]["environment"]);
var enable_aml_computecluster = Boolean(configYaml["variables"]["enable_aml_computecluster"]);
var enable_monitoring = Boolean(configYaml["variables"]["enable_monitoring"]);
var resource_group = String(configYaml["variables"]["resource_group"]);
var location = String(configYaml["variables"]["location"]);
var aml_workspace = String(configYaml["variables"]["aml_workspace"]);
var terraform_version = String(configYaml["variables"]["terraform_version"]);
var terraform_workingdir = String(configYaml["variables"]["terraform_workingdir"]);
var terraform_st_location = String(configYaml["variables"]["terraform_st_location"]);
var terraform_st_resource_group = String(configYaml["variables"]["terraform_st_resource_group"]);
var terraform_st_storage_account = String(configYaml["variables"]["terraform_st_storage_account"]);
var terraform_st_container_name = String(configYaml["variables"]["terraform_st_container_name"]);
var terraform_st_key = String(configYaml["variables"]["terraform_st_key"]);
if(checkGenerateEntity(terraform_st_location)){
terraform_st_location = location;
}
if(checkGenerateEntity(resource_group)){
resource_group = "rg-"+namespace+"-"+postfix+environment;
}
if(checkGenerateEntity(aml_workspace)){
aml_workspace = "mlw-"+namespace+"-"+postfix+environment;
}
if(checkGenerateEntity(terraform_st_resource_group)){
terraform_st_resource_group = "rg-"+namespace+"-"+postfix+environment+"-tf";
}
if(checkGenerateEntity(terraform_st_storage_account)){
terraform_st_storage_account = "st"+namespace+postfix+environment+"tf";
}
const batch_endpoint_name = "bep-"+namespace+"-"+postfix+environment;
const online_endpoint_name = "oep-"+namespace+"-"+postfix+environment;
core.setOutput("location",location);
core.setOutput("namespace",namespace);
core.setOutput("postfix",postfix);
core.setOutput("environment",environment);
core.setOutput("enable_monitoring",enable_monitoring);
core.setOutput("enable_aml_computecluster",enable_aml_computecluster);
core.setOutput("resource_group",resource_group);
core.setOutput("aml_workspace", aml_workspace);
core.setOutput("bep", batch_endpoint_name);
core.setOutput("oep", online_endpoint_name);
core.setOutput("terraform_version", terraform_version);
core.setOutput("terraform_workingdir", terraform_workingdir);
core.setOutput("terraform_st_location", terraform_st_location);
core.setOutput("terraform_st_resource_group", terraform_st_resource_group);
core.setOutput("terraform_st_storage_account", terraform_st_storage_account);
core.setOutput("terraform_st_container_name", terraform_st_container_name);
core.setOutput("terraform_st_key", terraform_st_key);
});
} catch (error) {
core.setFailed(error.message);
}
function checkGenerateEntity(entity){
var result = false;
var entityStr = String(entity);
if (entityStr.includes("$")){
result = true;
}
return result;
}