Mercurial > kallithea
annotate scripts/validate-commits @ 8814:4a18e6bf6b87
model: simplify how get_commits_stats task group on author
Avoid using the caching h.person . We want to get rid of the model
dependency on helpers.
The stats are persisted, and any temporary incorrectness in the long term
cached h.person will thus remain forever. It is thus arguably better to avoid
using it in this place.
get_commits_stats is also a long running task, so speed is not *that* critical.
And generally, processing commits in order will have a lot of the same
committers, so a local cache will have a good hit rate.
(Alternatively, h.person could perhaps be in user model ... but that's not how
it is now.)
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Fri, 18 Dec 2020 22:03:10 +0100 |
parents | 68861940ee1e |
children | 0a9ddb8cd8c1 |
rev | line source |
---|---|
7902
37ac2ac0a9ae
scripts/validate-commits: use direct /bin/bash interpreter
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
7841
diff
changeset
|
1 #!/bin/bash |
7503
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
2 # Validate the specified commits against test suite and other checks. |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
3 |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
4 if [ -n "$VIRTUAL_ENV" ]; then |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
5 echo "Please run this script from outside a virtualenv." |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
6 exit 1 |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
7 fi |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
8 |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
9 if ! hg update --check -q .; then |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
10 echo "Working dir is not clean, please commit/revert changes first." |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
11 exit 1 |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
12 fi |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
13 |
8436
68861940ee1e
scripts: let validate-commits default to testing the draft changes upto current
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8340
diff
changeset
|
14 revset=$1 |
68861940ee1e
scripts: let validate-commits default to testing the draft changes upto current
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8340
diff
changeset
|
15 if [ -z "$revset" ]; then |
68861940ee1e
scripts: let validate-commits default to testing the draft changes upto current
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8340
diff
changeset
|
16 echo "Warning: no revisions specified, checking draft changes up to the current one." |
68861940ee1e
scripts: let validate-commits default to testing the draft changes upto current
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8340
diff
changeset
|
17 revset='draft() and ancestors(.)' |
68861940ee1e
scripts: let validate-commits default to testing the draft changes upto current
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8340
diff
changeset
|
18 fi |
68861940ee1e
scripts: let validate-commits default to testing the draft changes upto current
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8340
diff
changeset
|
19 |
7503
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
20 venv=$(mktemp -d kallithea-validatecommits-env-XXXXXX) |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
21 resultfile=$(mktemp kallithea-validatecommits-result-XXXXXX) |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
22 echo > "$resultfile" |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
23 |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
24 cleanup() |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
25 { |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
26 rm -rf /tmp/kallithea-test* |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
27 rm -rf "$venv" |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
28 } |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
29 finish() |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
30 { |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
31 cleanup |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
32 # print (possibly intermediate) results |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
33 cat "$resultfile" |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
34 rm "$resultfile" |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
35 } |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
36 trap finish EXIT |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
37 |
8436
68861940ee1e
scripts: let validate-commits default to testing the draft changes upto current
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8340
diff
changeset
|
38 for rev in $(hg log -r "$revset" -T '{node}\n'); do |
7503
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
39 hg log -r "$rev" |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
40 hg update "$rev" |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
41 |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
42 cleanup |
8193
89e9aef9b983
py3: use "python3 -m venv" instead of virtualenv package
Mads Kiilerich <mads@kiilerich.com>
parents:
8173
diff
changeset
|
43 python3 -m venv "$venv" |
7503
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
44 source "$venv/bin/activate" |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
45 pip install --upgrade pip setuptools |
7841
d9e37f7fd35b
docs: always use dev_requirements.txt together with main version constraints in setup.py
Mads Kiilerich <mads@kiilerich.com>
parents:
7503
diff
changeset
|
46 pip install -e . -r dev_requirements.txt python-ldap python-pam |
7503
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
47 |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
48 # run-all-cleanup |
8340
bf85e6018daa
scripts: properly check for errors in whitespacecleanup/run-all-cleanup
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8193
diff
changeset
|
49 if ! scripts/run-all-cleanup ; then |
bf85e6018daa
scripts: properly check for errors in whitespacecleanup/run-all-cleanup
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8193
diff
changeset
|
50 echo "run-all-cleanup encountered errors!" |
7503
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
51 result="NOK" |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
52 else |
8340
bf85e6018daa
scripts: properly check for errors in whitespacecleanup/run-all-cleanup
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8193
diff
changeset
|
53 if ! hg update --check -q .; then |
bf85e6018daa
scripts: properly check for errors in whitespacecleanup/run-all-cleanup
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8193
diff
changeset
|
54 echo "run-all-cleanup did not give clean results!" |
bf85e6018daa
scripts: properly check for errors in whitespacecleanup/run-all-cleanup
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8193
diff
changeset
|
55 result="NOK" |
bf85e6018daa
scripts: properly check for errors in whitespacecleanup/run-all-cleanup
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8193
diff
changeset
|
56 hg diff |
bf85e6018daa
scripts: properly check for errors in whitespacecleanup/run-all-cleanup
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8193
diff
changeset
|
57 hg revert -a |
bf85e6018daa
scripts: properly check for errors in whitespacecleanup/run-all-cleanup
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8193
diff
changeset
|
58 else |
bf85e6018daa
scripts: properly check for errors in whitespacecleanup/run-all-cleanup
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8193
diff
changeset
|
59 result=" OK" |
bf85e6018daa
scripts: properly check for errors in whitespacecleanup/run-all-cleanup
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
8193
diff
changeset
|
60 fi |
7503
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
61 fi |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
62 echo "$result: $rev (run-all-cleanup)" >> "$resultfile" |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
63 |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
64 # pytest |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
65 if py.test; then |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
66 result=" OK" |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
67 else |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
68 result="NOK" |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
69 fi |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
70 echo "$result: $rev (pytest)" >> "$resultfile" |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
71 |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
72 deactivate |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
73 echo |
69f70de15f26
scripts: add developer script validate-commits
Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
parents:
diff
changeset
|
74 done |