Skip to content

Commit ca456fc

Browse files
authored
Merge pull request #294 from junpataleta/validateContinuousReleaseDate
Validate release date on continuous queues manager
2 parents 8399dca + fc09900 commit ca456fc

File tree

3 files changed

+125
-12
lines changed

3 files changed

+125
-12
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
#!/usr/bin/env bats
2+
3+
load libs/shared_setup
4+
5+
setup () {
6+
export WORKSPACE=$gitdir
7+
8+
# Some dummy variables just for the sake of the letting the script proceed through the validation.
9+
export jiraclicmd=jiracli
10+
export jiraserver=https://tracker.moodle.org
11+
export jirauser=jirauser
12+
export jirapass=jirapass
13+
}
14+
15+
@test "tracker_automations/continuous_manage_queues/continuous_manage_queues.sh: Current date < release date" {
16+
releasedate=$(date -d "+10day" +%Y-%m-%d)
17+
lastweekdate=$(date -d "${releasedate} -7day" +%Y-%m-%d)
18+
19+
source $PWD/tracker_automations/continuous_manage_queues/lib.sh
20+
21+
run run_param_validation $releasedate $lastweekdate
22+
23+
# Assert result.
24+
assert_success
25+
assert_output --partial "Parameters validated"
26+
}
27+
28+
@test "tracker_automations/continuous_manage_queues/continuous_manage_queues.sh: Current date = on-sync date" {
29+
releasedate=$(date -d "-28day" +%Y-%m-%d)
30+
lastweekdate=$(date -d "${releasedate} -7day" +%Y-%m-%d)
31+
32+
source $PWD/tracker_automations/continuous_manage_queues/lib.sh
33+
34+
run run_param_validation $releasedate $lastweekdate
35+
36+
# Assert result.
37+
assert_success
38+
assert_output --partial "Parameters validated"
39+
}
40+
41+
@test "tracker_automations/continuous_manage_queues/continuous_manage_queues.sh: Current date > on-sync date" {
42+
releasedate=$(date -d "-29day" +%Y-%m-%d)
43+
lastweekdate=$(date -d "${releasedate} -7day" +%Y-%m-%d)
44+
45+
source $PWD/tracker_automations/continuous_manage_queues/lib.sh
46+
47+
run run_param_validation $releasedate $lastweekdate
48+
49+
# Assert result.
50+
assert_failure
51+
assert_output --partial "ERROR: The current date is already past the on-sync period. Please make sure the Release date (${releasedate}) is configured correctly"
52+
}
53+
54+
@test "tracker_automations/continuous_manage_queues/continuous_manage_queues.sh: Invalid release date format" {
55+
releasedate=$(date +%m-%d-%Y)
56+
lastweekdate=$(date +%Y-%m-%d)
57+
source $PWD/tracker_automations/continuous_manage_queues/lib.sh
58+
59+
run run_param_validation $releasedate $lastweekdate
60+
61+
# Assert result.
62+
assert_failure
63+
assert_output --partial "ERROR: \$releasedate. Incorrect YYYY-MM-DD format detected: ${releasedate}"
64+
}
65+
66+
@test "tracker_automations/continuous_manage_queues/continuous_manage_queues.sh: Invalid last week date format" {
67+
releasedate=$(date -d "+7day" +%Y-%m-%d)
68+
lastweekdate=$(date +%m-%d-%Y)
69+
source $PWD/tracker_automations/continuous_manage_queues/lib.sh
70+
71+
run run_param_validation $releasedate $lastweekdate
72+
73+
# Assert result.
74+
assert_failure
75+
assert_output --partial "ERROR: \$lastweekdate. Incorrect YYYY-MM-DD format detected: ${lastweekdate}"
76+
}
77+
78+
@test "tracker_automations/continuous_manage_queues/continuous_manage_queues.sh: Last week date is after the release date" {
79+
releasedate=$(date -d "+7day" +%Y-%m-%d)
80+
lastweekdate=$(date -d "+8day" +%Y-%m-%d)
81+
source $PWD/tracker_automations/continuous_manage_queues/lib.sh
82+
83+
run run_param_validation $releasedate $lastweekdate
84+
85+
# Assert result.
86+
assert_failure
87+
assert_output --partial "ERROR: The value set for \$lastweekdate ($lastweekdate) is after the \$releasedate ($releasedate)"
88+
}

tracker_automations/continuous_manage_queues/continuous_manage_queues.sh

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -72,21 +72,11 @@ movemax=${movemax:-3}
7272
lastweekdate=${lastweekdate:-$(date -d "${releasedate} -7day" +%Y-%m-%d)}
7373
dryrun=${dryrun:-}
7474

75-
# Verify that $releasedata has a correct YYYY-MM-DD format
76-
if [[ ! ${releasedate} =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
77-
echo "ERROR: \$releasedate. Incorrect YYYY-MM-DD format detected: ${releasedate}"
78-
exit 1
79-
fi
80-
81-
# Verify that $lastweekdate has a correct YYYY-MM-DD format
82-
if [[ ! ${lastweekdate} =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
83-
echo "ERROR: \$lastweekdate. Incorrect YYYY-MM-DD format detected: ${lastweekdate}"
84-
exit 1
85-
fi
86-
8775
# Today
8876
nowdate=$(date +%Y%m%d)
8977

78+
run_param_validation $releasedate $lastweekdate
79+
9080
# Decide if we are going to proceed with behaviour A (before release) or behaviour B (after release)
9181
behaviorAB=
9282
if [ $nowdate -lt $(date -d "${releasedate}" +%Y%m%d) ]; then

tracker_automations/continuous_manage_queues/lib.sh

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -389,3 +389,38 @@ function run_C() {
389389
echo "$BUILD_NUMBER $BUILD_TIMESTAMP ${issue} moved out from current: held" >> "${logfile}"
390390
done
391391
}
392+
393+
function run_param_validation() {
394+
releasedate=$1
395+
lastweekdate=$2
396+
397+
# Verify that $releasedate has a correct YYYY-MM-DD format
398+
if [[ ! ${releasedate} =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
399+
echo "ERROR: \$releasedate. Incorrect YYYY-MM-DD format detected: ${releasedate}"
400+
exit 1
401+
fi
402+
403+
# Verify that $lastweekdate has a correct YYYY-MM-DD format
404+
if [[ ! ${lastweekdate} =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
405+
echo "ERROR: \$lastweekdate. Incorrect YYYY-MM-DD format detected: ${lastweekdate}"
406+
exit 1
407+
fi
408+
409+
# Verify that the last week date is not after the release date.
410+
releasedateint=$(date -d "${releasedate}" +%Y%m%d)
411+
lastweekdateint=$(date -d "${lastweekdate}" +%Y%m%d)
412+
if [ $releasedateint -lt $lastweekdateint ]; then
413+
echo "ERROR: The value set for \$lastweekdate ($lastweekdate) is after the \$releasedate ($releasedate)"
414+
exit 1
415+
fi
416+
417+
# Verify that the current date is not well past the on-sync period. (Normally 2 weeks but making it 4 weeks just in case).
418+
nowdate=$(date +%Y%m%d)
419+
onsyncenddate=$(date -d "${releasedate} +28day" +%Y%m%d)
420+
if [ $nowdate -gt $onsyncenddate ]; then
421+
echo "ERROR: The current date is already past the on-sync period. Please make sure the Release date ($releasedate) is configured correctly"
422+
exit 1
423+
fi
424+
425+
echo "Parameters validated"
426+
}

0 commit comments

Comments
 (0)