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]; }