diff --git a/.github/actions/dotenv_action.js b/.github/actions/dotenv_action.js new file mode 100644 index 0000000..d8bd192 --- /dev/null +++ b/.github/actions/dotenv_action.js @@ -0,0 +1,27 @@ +const fs = require("fs"); + +let dotenv_action = function (dotenvFile, keysCase) { + if (!fs.existsSync(dotenvFile)) { + throw new Error("file does not exist"); + } + + const dotenv = require("dotenv").config({ path: dotenvFile }); + const dotenv_expand = require("dotenv-expand").expand(dotenv); + console.log("loading .env file from " + dotenvFile); + + const returnedMap = {}; + for (const key in dotenv_expand.parsed) { + const value = dotenv_expand.parsed[key]; + + if (keysCase == "bypass") { + returnedMap[key] = value; + } else if (keysCase == "upper") { + returnedMap[key.toLocaleUpperCase()] = value; + } else { + returnedMap[key.toLocaleLowerCase()] = value; + } + } + return returnedMap; +}; + +module.exports = dotenv_action; diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 7b2ffb2..edf3132 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -66,7 +66,7 @@ jobs: - name: DotEnv file id: dotenv - uses: actions/dotenv-action + uses: ./.github/actions/dotenv-action - name: Checkout repository uses: actions/checkout@v4