@toptal/davinci-ci 7.4.0 → 7.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/package.json +1 -1
- package/src/configs/docker/Dockerfile.gha-deploy +0 -4
- package/src/configs/docker/env-runtime.entrypoint.sh +16 -2
- package/src/configs/docker/import-davinci-environment-file.sh +0 -31
- package/src/configs/docker/import-davinci-environment-file.test.sh +0 -56
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 7.4.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#2380](https://github.com/toptal/davinci/pull/2380) [`262d4029`](https://github.com/toptal/davinci/commit/262d4029c66f284bd20ab4028d9a9c0fea31900a) Thanks [@sashuk](https://github.com/sashuk)!
|
|
8
|
+
- move env variables replacement into entrypoint script
|
|
9
|
+
|
|
3
10
|
## 7.4.0
|
|
4
11
|
|
|
5
12
|
### Minor Changes
|
package/package.json
CHANGED
|
@@ -15,10 +15,6 @@ RUN [ -z "$ENV_RUNTIME_ENTRYPOINT" ] && echo "ENV_RUNTIME_ENTRYPOINT is required
|
|
|
15
15
|
COPY $ENV_RUNTIME_ENTRYPOINT /usr/local/bin/env-runtime.entrypoint.sh
|
|
16
16
|
RUN chmod +x /usr/local/bin/env-runtime.entrypoint.sh
|
|
17
17
|
|
|
18
|
-
# Copy script that reads .env file and replaces DAVINCI_* environment variables if they are empty
|
|
19
|
-
COPY ./davinci/packages/ci/src/configs/docker/import-davinci-environment-file.sh /usr/local/bin/import-davinci-environment-file.sh
|
|
20
|
-
RUN chmod +x /usr/local/bin/import-davinci-environment-file.sh
|
|
21
|
-
|
|
22
18
|
# version is used in build process, so the value won't be available here otherwise
|
|
23
19
|
ARG VERSION
|
|
24
20
|
RUN [ -z "$VERSION" ] && echo "VERSION is required" && exit 1 || true
|
|
@@ -16,8 +16,22 @@ VARS_PREFIX="DAVINCI_"
|
|
|
16
16
|
DIST_PATH="/usr/share/nginx/html"
|
|
17
17
|
INDEX_FILE="$DIST_PATH/index.html"
|
|
18
18
|
|
|
19
|
-
# import environment variables from .env.DAVINCI_ENV
|
|
20
|
-
|
|
19
|
+
# import environment variables from .env.DAVINCI_ENV files if there are any
|
|
20
|
+
ENV_FILE="$DIST_PATH/.env.$DAVINCI_ENV"
|
|
21
|
+
if [ -f "$ENV_FILE" ]; then
|
|
22
|
+
echo "Info: $ENV_FILE exists, importing variables..."
|
|
23
|
+
|
|
24
|
+
# Store current environment variables
|
|
25
|
+
OLD_ENV="$(export -p)"
|
|
26
|
+
|
|
27
|
+
# Load env file variables
|
|
28
|
+
export $(grep -v '^#' $ENV_FILE | xargs)
|
|
29
|
+
|
|
30
|
+
# Override env variables with previous values
|
|
31
|
+
eval "$OLD_ENV"
|
|
32
|
+
else
|
|
33
|
+
echo "Info: $ENV_FILE does not exist"
|
|
34
|
+
fi
|
|
21
35
|
|
|
22
36
|
VARS="$(env | grep $VARS_PREFIX | awk -F = '{print $1}')"
|
|
23
37
|
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
#!/bin/sh -e
|
|
2
|
-
|
|
3
|
-
# Reads environment variables from .env.$DAVINCI_ENV file and overrides every empty
|
|
4
|
-
# variable in the existing environment
|
|
5
|
-
# See import-davinci-environment-file.test.sh for testing
|
|
6
|
-
|
|
7
|
-
if [ -z "$DAVINCI_ENV" ]; then
|
|
8
|
-
echo "Error: DAVINCI_ENV is empty"
|
|
9
|
-
exit 1
|
|
10
|
-
fi
|
|
11
|
-
|
|
12
|
-
if [ -z "$DIST_PATH" ]; then
|
|
13
|
-
echo "Error: DIST_PATH is empty"
|
|
14
|
-
exit 1
|
|
15
|
-
fi
|
|
16
|
-
|
|
17
|
-
ENV_FILE="$DIST_PATH/.env.$DAVINCI_ENV"
|
|
18
|
-
if [ -f "$ENV_FILE" ]; then
|
|
19
|
-
echo "Info: $ENV_FILE exists, importing variables..."
|
|
20
|
-
|
|
21
|
-
# Store current environment variables
|
|
22
|
-
OLD_ENV="$(export -p)"
|
|
23
|
-
|
|
24
|
-
# Load env file variables
|
|
25
|
-
export $(grep -v '^#' $ENV_FILE | xargs)
|
|
26
|
-
|
|
27
|
-
# Override env variables with previous values
|
|
28
|
-
eval "$OLD_ENV"
|
|
29
|
-
else
|
|
30
|
-
echo "Info: $ENV_FILE does not exist"
|
|
31
|
-
fi
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
# How to run test:
|
|
4
|
-
# - navigate to this folder in bash
|
|
5
|
-
# - run script "./import-davinci-environment-variables.test.sh", there should be no lines with "Assertion failed"
|
|
6
|
-
|
|
7
|
-
# Set up test environment
|
|
8
|
-
export TMP_PATH="./tmp"
|
|
9
|
-
mkdir -p "$TMP_PATH"
|
|
10
|
-
export DIST_PATH="$TMP_PATH"
|
|
11
|
-
|
|
12
|
-
# Set up console colors
|
|
13
|
-
RED='\033[0;31m'
|
|
14
|
-
NC='\033[0m'
|
|
15
|
-
|
|
16
|
-
############
|
|
17
|
-
# Test case:
|
|
18
|
-
# - EMPTY_VARIALBE_ABC value is replaced with value from .env.staging if the value in .env.staging is not empty
|
|
19
|
-
# - EMPTY_VARIALBE_DEF value stays empty as the value in .env.staging is empty
|
|
20
|
-
# - NON_EMPTY_VARIABLE value is not replaced with value from .env.staging
|
|
21
|
-
############
|
|
22
|
-
|
|
23
|
-
export DAVINCI_ENV="staging"
|
|
24
|
-
export NON_EMPTY_VARIABLE="123"
|
|
25
|
-
printf "%s\n" "EMPTY_VARIALBE_ABC=from-env-file" "EMPTY_VARIALBE_DEF=" "NON_EMPTY_VARIABLE=from-env-file" "RANDOM_VARIABLE=456" > "$DIST_PATH/.env.$DAVINCI_ENV"
|
|
26
|
-
|
|
27
|
-
set -a
|
|
28
|
-
source import-davinci-environment-file.sh
|
|
29
|
-
|
|
30
|
-
if [ "$EMPTY_VARIALBE_ABC" != "from-env-file" ]; then
|
|
31
|
-
echo -e "${RED}Assertion failed:${NC} EMPTY_VARIALBE_ABC is not equal to expected_value (received \"$EMPTY_VARIALBE_ABC\")"
|
|
32
|
-
exit 1
|
|
33
|
-
fi
|
|
34
|
-
|
|
35
|
-
if [ "$EMPTY_VARIALBE_DEF" != "" ]; then
|
|
36
|
-
echo -e "${RED}Assertion failed:${NC} EMPTY_VARIALBE_DEF is not equal to expected_value (received \"$EMPTY_VARIALBE_DEF\")"
|
|
37
|
-
exit 1
|
|
38
|
-
fi
|
|
39
|
-
|
|
40
|
-
if [ "$NON_EMPTY_VARIABLE" != "123" ]; then
|
|
41
|
-
echo -e "${RED}Assertion failed:${NC} NON_EMPTY_VARIABLE is not equal to expected_value"
|
|
42
|
-
exit 1
|
|
43
|
-
fi
|
|
44
|
-
|
|
45
|
-
# Clean up test environment
|
|
46
|
-
rm -rf "$TMP_PATH"
|
|
47
|
-
|
|
48
|
-
###########
|
|
49
|
-
# Test case: environment file does not exist
|
|
50
|
-
###########
|
|
51
|
-
command_output=$(source import-davinci-environment-file.sh)
|
|
52
|
-
|
|
53
|
-
if [ "$command_output" != "Info: $DIST_PATH/.env.$DAVINCI_ENV does not exist" ]; then
|
|
54
|
-
echo -e "${RED}Assertion failed:${NC} command_output is not equal to expected_value (received \"$command_output\")"
|
|
55
|
-
exit 1
|
|
56
|
-
fi
|