This repository has been archived by the owner on Nov 10, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 9
/
entrypoint.sh
executable file
·91 lines (73 loc) · 2.06 KB
/
entrypoint.sh
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/bash
set -u
function parseInputs(){
# Required inputs
if [ "${INPUT_SAM_COMMAND}" == "" ]; then
echo "Input sam_subcommand cannot be empty"
exit 1
fi
}
function installAwsSam(){
echo "Install aws-sam-cli ${INPUT_SAM_VERSION}"
if [ "${INPUT_SAM_VERSION}" == "latest" ]; then
pip install aws-sam-cli >/dev/null 2>&1
if [ "${?}" -ne 0 ]; then
echo "Failed to install aws-sam-cli ${INPUT_SAM_VERSION}"
else
echo "Successful install aws-sam-cli ${INPUT_SAM_VERSION}"
fi
else
pip install aws-sam-cli==${INPUT_SAM_VERSION} >/dev/null 2>&1
if [ "${?}" -ne 0 ]; then
echo "Failed to install aws-sam-cli ${INPUT_SAM_VERSION}"
else
echo "Successful install aws-sam-cli ${INPUT_SAM_VERSION}"
fi
fi
}
function runSam(){
if [ "${INPUT_GITHUB_PACKAGE_REGISTRY_TOKEN}" == "" ]; then
echo "//npm.pkg.github.com/:_authToken=${INPUT_GITHUB_PACKAGE_REGISTRY_TOKEN}" > ~/.npmrc
fi
echo "Run sam ${INPUT_SAM_COMMAND}"
output=$(sam ${INPUT_SAM_COMMAND} 2>&1)
exitCode=${?}
echo "${output}"
commentStatus="Failed"
if [ "${exitCode}" == "0" ]; then
commentStatus="Success"
fi
if [ "$GITHUB_EVENT_NAME" == "pull_request" ] && [ "${INPUT_ACTIONS_COMMENT}" == "true" ]; then
commentWrapper="#### \`sam ${INPUT_SAM_COMMAND}\` ${commentStatus}
<details><summary>Show Output</summary>
\`\`\`
${output}
\`\`\`
</details>
*Workflow: \`${GITHUB_WORKFLOW}\`, Action: \`${GITHUB_ACTION}\`*"
payload=$(echo "${commentWrapper}" | jq -R --slurp '{body: .}')
commentsURL=$(cat ${GITHUB_EVENT_PATH} | jq -r .pull_request.comments_url)
echo "${payload}" | curl -s -S -H "Authorization: token ${GITHUB_TOKEN}" --header "Content-Type: application/json" --data @- "${commentsURL}" > /dev/null
fi
if [ "${exitCode}" == "1" ]; then
exit 1
fi
}
function gotoDirectory(){
if [ -z "${INPUT_DIRECTORY}" ]; then
return 1
fi
if [ ! -d "${INPUT_DIRECTORY}" ]; then
echo "Directory ${INPUT_DIRECTORY} does not exists."
exit 127
fi
echo "cd ${INPUT_DIRECTORY}"
cd $INPUT_DIRECTORY
}
function main(){
parseInputs
installAwsSam
gotoDirectory
runSam
}
main