action-env-replacer/src/index.js

29 lines
818 B
JavaScript

const core = require('@actions/core');
const { writeFileSync, readFileSync } = require('fs');
try {
const file = core.getInput('file');
core.info(`file:${file}`)
if(!file){
throw {
message:"file should not be empty"
}
}
let content = readFileSync(file, { encoding: "utf-8" })
const envs = process.env
const show = core.getBooleanInput("show")
for (const key in envs) {
if(show){
core.info(`${key}=${envs[key]}`);
}
if (key.startsWith("APP_")) {
content = content.replaceAll(new RegExp(`\\$\\{\\s*${key}\\s*\\}`,"g"), envs[key]);
}
}
writeFileSync(file, content)
core.info(`replace envs in ${file}`);
if(show){
core.info(`=============\n${content}\n=============`)
}
} catch (error) {
core.setFailed(error.message);
}