Skip to content

Commit 78148b9

Browse files
committed
Updated validation script to allow for new/multiple update TAGs.
Change APP_ID to CLIENT_ID (new best practice)
1 parent 8157027 commit 78148b9

2 files changed

Lines changed: 41 additions & 21 deletions

File tree

.github/scripts/validate.sh

Lines changed: 39 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,71 @@
11
#!/bin/sh -l
22

3-
set -eu
3+
set -u
44

55
### VARIABLES ###
66

77
# From action env:
88
# REPO_DIR
99
# TAG
1010

11-
ACT_LOG_PATH=_visualize/LAST_${TAG}_UPDATE.txt
12-
ACT_INPUT_PATH=_visualize
1311
ACT_DATA_PATH=visualize/github-data
12+
ACT_INPUT_PATH=_visualize
13+
ACT_LOG_PATH=_visualize
14+
ACT_LOG_FILE=${ACT_LOG_PATH}/LAST_${TAG}_UPDATE.txt
1415

1516
### VALIDATE UPDATE ###
1617

1718
cd $REPO_DIR
1819

19-
# TODO creation of new file (from new TAG) should be valid
20-
# # Timestamp log changed
21-
# cat $ACT_LOG_PATH
22-
# if [ $(git diff --name-only HEAD | grep -c "${ACT_LOG_PATH}") -ne "1" ]
23-
# then
24-
# echo "UPDATE FAILED - Timestamp log unchanged"
25-
# exit 1
26-
# else
27-
# echo "Timestamp log confirmed"
28-
# fi
29-
30-
# Logged START and END without FAILED
31-
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" ]
20+
# Timestamp log changed
21+
cat $ACT_LOG_FILE
22+
if [ $(git diff --name-only HEAD | grep -c "${ACT_LOG_FILE}") -ne "1" ]
23+
then
24+
# or is new
25+
if [ $(git status --porcelain | grep "^?? " | awk '{print $2}' | grep -c "${ACT_LOG_FILE}") -ne "1" ]
26+
then
27+
echo "UPDATE FAILED - Timestamp log unchanged"
28+
exit 1
29+
else
30+
echo "Timestamp log confirmed as new"
31+
fi
32+
else
33+
echo "Timestamp log confirmed as updated"
34+
fi
35+
36+
# Logged START and END without FAILED
37+
if [ $(cat $ACT_LOG_FILE | grep -c FAILED) -ne "0" ] || [ $(cat $ACT_LOG_FILE | grep -c START) -ne "1" ] || [ $(cat $ACT_LOG_FILE | grep -c END) -ne "1" ]
3238
then
3339
echo "UPDATE FAILED - Invalid timestamp log"
3440
exit 1
3541
else
3642
echo "Timestamp log valid"
3743
fi
3844

39-
# All changes are to valid files only
45+
# All new files are valid additions ( <ACT_DATA_PATH>/*.json | <ACT_LOG_PATH>/LAST_*_UPDATE.txt )
46+
git status --porcelain | grep --color=never "^?? "
47+
UNTRACKED_COUNT=$(git status --porcelain | grep -c "^?? ")
48+
VALID_UNTRACKED_COUNT=$(git status --porcelain | grep "^?? " | awk '{print $2}' | grep -c -E "(^${ACT_DATA_PATH}\/\S+\.json$)|(^${ACT_LOG_PATH}\/LAST_\S+\_UPDATE.txt$)")
49+
if [ "$UNTRACKED_COUNT" -ne "$VALID_UNTRACKED_COUNT" ]
50+
then
51+
echo "UPDATE FAILED - Unexpected new files"
52+
exit 1
53+
else
54+
echo "New files validated"
55+
fi
56+
57+
# All changes are to expected files only ( <ACT_DATA_PATH>/*.json | <ACT_INPUT_PATH>/input*.json | <ACT_LOG_PATH>/LAST_*_UPDATE.txt )
4058
git diff --name-only HEAD
4159
CHANGE_COUNT=$(git diff --name-only HEAD | grep -c -E ".+")
42-
VALID_COUNT=$(git diff --name-only HEAD | grep -c -E "(^${ACT_DATA_PATH}\/\S+\.json$)|(^${ACT_INPUT_PATH}\/input\S+\.json$)|(${ACT_LOG_PATH})")
43-
if [ "$CHANGE_COUNT" -ne "$VALID_COUNT" ]
60+
VALID_CHANGE_COUNT=$(git diff --name-only HEAD | grep -c -E "(^${ACT_DATA_PATH}\/\S+\.json$)|(^${ACT_INPUT_PATH}\/input\S+\.json$)|(^${ACT_LOG_PATH}\/LAST_\S+\_UPDATE.txt$)")
61+
if [ "$CHANGE_COUNT" -ne "$VALID_CHANGE_COUNT" ]
4462
then
4563
echo "UPDATE FAILED - Unexpected file changes"
4664
exit 1
4765
else
4866
echo "Changed files validated"
4967
fi
5068

69+
echo "VALIDATION SUCCESSFUL - All checks passed"
70+
5171
exit 0

.github/workflows/update.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
uses: actions/create-github-app-token@v2
4747
id: app-token1
4848
with:
49-
app-id: ${{ vars.APP_ID }}
49+
app-id: ${{ vars.CLIENT_ID }}
5050
private-key: ${{ secrets.PRIVATE_KEY }}
5151

5252
- name: Run data collection script with App Installation Token
@@ -81,7 +81,7 @@ jobs:
8181
uses: actions/create-github-app-token@v2
8282
id: app-token
8383
with:
84-
app-id: ${{ vars.APP_ID }}
84+
app-id: ${{ vars.CLIENT_ID }}
8585
private-key: ${{ secrets.PRIVATE_KEY }}
8686

8787
- name: Get GitHub App User ID

0 commit comments

Comments
 (0)