-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathaction.yaml
68 lines (61 loc) · 2.02 KB
/
action.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
name: 'Run ConneKt Scripts'
description: 'Run a list of scripts inside a container with environment setup'
inputs:
files:
description: 'List of full paths to scripts to execute (newline separated)'
required: true
env_file:
description: 'Path to env file (connekt.env.json)'
required: false
env:
description: 'Environment name'
required: false
env_params:
description: 'List of env-param values (newline separated key=value)'
required: false
default: ''
image:
description: 'Docker image to use'
required: false
default: 'ghcr.io/amplicode/connekt:0.1'
runs:
using: 'composite'
steps:
- name: Run Scripts Inside Docker
run: |
ENV_PARAM_ARGS=""
if [ -n "${{ inputs.env_params }}" ]; then
while read param; do
if [ -n "$param" ]; then
ENV_PARAM_ARGS="$ENV_PARAM_ARGS --env-param $param"
fi
done <<< "${{ inputs.env_params }}"
fi
ENV_NAME_ARG=""
if [ -n "${{ inputs.env }}" ]; then
ENV_NAME_ARG="--env-name=${{ inputs.env }}"
fi
ENV_FILE_MOUNT=""
ENV_FILE_ARG=""
if [ -n "${{ inputs.env_file }}" ]; then
ENV_FILE_ABS_PATH="$(realpath ${{ inputs.env_file }})"
ENV_FILE_MOUNT="-v $ENV_FILE_ABS_PATH:/connekt/scripts/connekt.env.json"
ENV_FILE_ARG="--env-file=scripts/connekt.env.json"
fi
echo "${{ inputs.files }}" | while read filepath; do
if [ -n "$filepath" ]; then
filename=$(basename "$filepath")
dirpath=$(dirname "$filepath")
echo "Running $filename from $dirpath..."
docker run --rm \
--add-host=host.docker.internal:host-gateway \
-v "$dirpath":/connekt/scripts \
$ENV_FILE_MOUNT \
${{ inputs.image }} \
$ENV_NAME_ARG \
$ENV_FILE_ARG \
--script=scripts/"$filename" \
$ENV_PARAM_ARGS
fi
done
shell: bash