feat(versionfile): accept versionfile

This commit is contained in:
tush-tr 2023-05-27 04:13:39 +05:30
parent 1fdd4cd311
commit 6fac858356
3 changed files with 79 additions and 3 deletions

39
dist/index.js vendored
View file

@ -120,11 +120,48 @@ credentials "${credentialsHostname}" {
core.debug(`Adding credentials to ${credsFile}`);
await fs.writeFile(credsFile, creds);
}
async function isVersionFileExist(versionFilePath) {
try {
await fs.access(versionFilePath);
return true;
} catch (err) {
return false;
}
}
async function resolveVersionInput() {
let version = core.getInput("terraform_version");
const versionFileInput = core.getInput("terraform_version_file");
if (version && versionFileInput) {
core.warning(
"Both terraform_version and terraform_version_file inputs are specified, only terraform_version will be used"
);
}
if (version) {
return version;
}
if (versionFileInput) {
const versionFilePath = path.join(
process.env.GITHUB_WORKSPACE,
versionFileInput
);
const fileExists = await isVersionFileExist(versionFilePath);
if (!fileExists) {
throw new Error(
`The specified terraform version file at: ${versionFilePath} does not exist`
);
}
version = await fs.readFile(versionFilePath, "utf-8");
core.info(`Resolved ${versionFileInput} as ${version}`);
}
return version || "latest";
}
async function run () {
try {
// Gather GitHub Actions inputs
const version = core.getInput('terraform_version');
const version = await resolveVersionInput();
const credentialsHostname = core.getInput('cli_config_credentials_hostname');
const credentialsToken = core.getInput('cli_config_credentials_token');
const wrapper = core.getInput('terraform_wrapper') === 'true';