forked from llnl/llnl.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalidate.sh
More file actions
50 lines (40 loc) · 1.22 KB
/
validate.sh
File metadata and controls
50 lines (40 loc) · 1.22 KB
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
#!/bin/sh -l
set -eu
### VARIABLES ###
# From action env:
# REPO_DIR
# TAG
ACT_LOG_PATH=_visualize/LAST_${TAG}_UPDATE.txt
ACT_INPUT_PATH=_visualize
ACT_DATA_PATH=visualize/github-data
### VALIDATE UPDATE ###
cd $REPO_DIR
# Timestamp log changed
cat $ACT_LOG_PATH
if [ $(git diff --name-only HEAD | grep -c "${ACT_LOG_PATH}") -ne "1" ]
then
echo "UPDATE FAILED - Timestamp log unchanged"
exit 1
else
echo "Timestamp log confirmed"
fi
# Logged START and END without FAILED
if [ $(cat $ACT_LOG_PATH | grep -c FAILED) -ne "0" ] || [ $(cat $ACT_LOG_PATH | grep -c START) -ne "1" ] || [ $(cat $ACT_LOG_PATH | grep -c END) -ne "1" ]
then
echo "UPDATE FAILED - Invalid timestamp log"
exit 1
else
echo "Timestamp log valid"
fi
# All changes are to valid files only
git diff --name-only HEAD
CHANGE_COUNT=$(git diff --name-only HEAD | grep -c -E ".+")
VALID_COUNT=$(git diff --name-only HEAD | grep -c -E "(^${ACT_DATA_PATH}\/\S+\.json$)|(^${ACT_INPUT_PATH}\/input\S+\.json$)|(${ACT_LOG_PATH})")
if [ "$CHANGE_COUNT" -ne "$VALID_COUNT" ]
then
echo "UPDATE FAILED - Unexpected file changes"
exit 1
else
echo "Changed files validated"
fi
exit 0