GitHub Action to read .env file and add variables to GITHUB_ENV
- name: Load .env file
uses: xom9ikk/dotenv@v2
with:
path: custom/path/to/folder/with/env
mode: development
load-mode: strict
- name: Some other action
run: |
echo "Variable 1: ${{ env.VARIABLE_1 }}"
echo "Variable 2: ${{ env.VARIABLE_2 }}"
echo "Variable 3: ${{ env.VARIABLE_3 }}"
- ⛳ ability to specify the path to the folder;
- 🎨 setup mode;
- 💎 simple API;
- 🍃 variable expansion;
property | isRequired | default | comment | example |
---|---|---|---|---|
path |
x | ./ | path to the folder where the .env file is located. | ./custom/path/to/folder/with/env |
mode |
x | empty |
mode for loading the .env file. | test |
load-mode |
x | strict |
sets whether the program should fail when the .env file is not present (strict ) or continue (skip ) |
skip |
This action is built on top of the dotenv and dotenv-expand libraries.
When starting the action, the file is read from the target folder in the path
property and using the mode specified in mode
.
The name of the .env
file depends on the startup mode.
If you do not specify the launch mode, the .env
file will be loaded.
If you need to load a .env
file for a specific mode, you should specify the mode
property.
Thus, specifying mode: test
will read the .env.test
file. mode: development
will read .env.development
and so on.
After reading and parsing the variables from the .env
file, it writes them to GITHUB_ENV
.
If the action should continue when the .env file is not present, the optional load-mode
flag can be set to skip
. This can be particularly, for example, useful in secondary branches, where some aspects of the action may not be relevant.
Action also supports variable expansion, e.g.
PASSWORD="s1mpl3"
DB_PASS=$PASSWORD