42 lines
1.5 KiB
JavaScript
42 lines
1.5 KiB
JavaScript
module.exports = async ({ github, context, core, jobId }) => {
|
|
/*
|
|
const frontendPath = `./${jobId}/frontend/diunaBI/browser/`;
|
|
const files = (require('fs').readdirSync(frontendPath).filter(file => file.endsWith('.js')))
|
|
.map(file => `${frontendPath}${file}`);
|
|
if (files.length === 0) {
|
|
core.setFailed("Frontend JS files not found");
|
|
return false;
|
|
}
|
|
*/
|
|
|
|
const files = [];
|
|
files.push(`./${jobId}/webapi/appsettings.json`);
|
|
//files.push(`./${jobId}/webapi/client_secrets.json`);
|
|
|
|
files.forEach(file => {
|
|
let data = require('fs').readFileSync(file, 'utf8');
|
|
const regex = /#{(.*?)}#/g;
|
|
let match;
|
|
while (match = regex.exec(data)) {
|
|
const original = match[0];
|
|
const token = match[1].replace(/-/g, '_').toUpperCase();
|
|
const value = getValue(token, jobId);
|
|
if (!value) {
|
|
core.setFailed(`Token ${token} not found`);
|
|
return false;
|
|
}
|
|
data = data.replace(new RegExp(original, 'g'), value);
|
|
console.log(`Replaced ${original} with ${value} (${token}) in ${file}`);
|
|
console.log(data);
|
|
}
|
|
console.log(data);
|
|
require('fs').writeFileSync(file, data, 'utf8');
|
|
});
|
|
}
|
|
|
|
function getValue(token, jobId) {
|
|
if (token == 'BUILDID') { return jobId; }
|
|
const secrets = JSON.parse(process.env.SECRETS);
|
|
const variables = JSON.parse(process.env.VARIABLES);
|
|
return variables[token] || secrets[token];
|
|
} |