forked from frappe/frappe
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: travis builds checks (via Python instead) (frappe#10659)
- Loading branch information
1 parent
3c630bf
commit a95aa7a
Showing
2 changed files
with
55 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
# if the script ends with exit code 0, then no tests are run further, else all tests are run | ||
import os | ||
import re | ||
import shlex | ||
import subprocess | ||
import sys | ||
|
||
|
||
def get_output(command, shell=True): | ||
print(command) | ||
command = shlex.split(command) | ||
return subprocess.check_output(command, shell=shell, encoding="utf8").strip() | ||
|
||
def is_py(file): | ||
return file.endswith("py") | ||
|
||
def is_js(file): | ||
return file.endswith("js") | ||
|
||
def is_docs(file): | ||
regex = re.compile('\.(md|png|jpg|jpeg)$|^.github|LICENSE') | ||
return bool(regex.search(file)) | ||
|
||
|
||
if __name__ == "__main__": | ||
build_type = os.environ.get("TYPE") | ||
commit_range = os.environ.get("TRAVIS_COMMIT_RANGE") | ||
print("Build Type: {}".format(build_type)) | ||
print("Commit Range: {}".format(commit_range)) | ||
|
||
files_changed = get_output("git diff --name-only {}".format(commit_range), shell=False) | ||
|
||
if "fatal" not in files_changed: | ||
files_list = files_changed.split() | ||
only_docs_changed = len(list(filter(is_docs, files_list))) == len(files_list) | ||
only_js_changed = len(list(filter(is_js, files_list))) == len(files_list) | ||
only_py_changed = len(list(filter(is_py, files_list))) == len(files_list) | ||
|
||
if only_docs_changed: | ||
print("Only docs were updated, stopping build process.") | ||
sys.exit(0) | ||
|
||
if only_js_changed and build_type == "server": | ||
print("Only JavaScript code was updated; Stopping Python build process.") | ||
sys.exit(0) | ||
|
||
if only_py_changed and build_type == "ui": | ||
print("Only Python code was updated, stopping Cypress build process.") | ||
sys.exit(0) | ||
|
||
sys.exit(2) |