2019-03-15 22:23:54 -07:00
|
|
|
# Script used for checking changes for incremental testing cases
|
|
|
|
from __future__ import absolute_import
|
|
|
|
from __future__ import division
|
|
|
|
from __future__ import print_function
|
|
|
|
|
2020-04-15 08:10:22 -07:00
|
|
|
import json
|
2019-03-15 22:23:54 -07:00
|
|
|
import os
|
2020-02-21 04:02:17 +01:00
|
|
|
import re
|
2019-03-15 22:23:54 -07:00
|
|
|
import subprocess
|
2019-09-13 21:36:56 -07:00
|
|
|
import sys
|
|
|
|
from pprint import pformat
|
2019-03-15 22:23:54 -07:00
|
|
|
|
|
|
|
|
|
|
|
def list_changed_files(commit_range):
|
|
|
|
"""Returns a list of names of files changed in the given commit range.
|
|
|
|
|
|
|
|
The function works by opening a subprocess and running git. If an error
|
|
|
|
occurs while running git, the script will abort.
|
|
|
|
|
|
|
|
Args:
|
|
|
|
commit_range (string): The commit range to diff, consisting of the two
|
|
|
|
commit IDs separated by \"..\"
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
list: List of changed files within the commit range
|
|
|
|
"""
|
|
|
|
|
2020-04-15 08:10:22 -07:00
|
|
|
command = ["git", "diff", "--name-only", commit_range, "--"]
|
2019-03-15 22:23:54 -07:00
|
|
|
out = subprocess.check_output(command)
|
|
|
|
return [s.strip() for s in out.decode().splitlines() if s is not None]
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
|
|
|
|
RAY_CI_TUNE_AFFECTED = 0
|
2020-07-25 06:22:54 +02:00
|
|
|
RAY_CI_SGD_AFFECTED = 0
|
2020-04-09 23:36:06 +02:00
|
|
|
RAY_CI_ONLY_RLLIB_AFFECTED = 0 # Whether only RLlib is affected.
|
|
|
|
RAY_CI_RLLIB_AFFECTED = 0 # Whether RLlib minimal tests should be run.
|
|
|
|
RAY_CI_RLLIB_FULL_AFFECTED = 0 # Whether full RLlib tests should be run.
|
2019-09-13 21:36:56 -07:00
|
|
|
RAY_CI_SERVE_AFFECTED = 0
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_JAVA_AFFECTED = 0
|
|
|
|
RAY_CI_PYTHON_AFFECTED = 0
|
|
|
|
RAY_CI_LINUX_WHEELS_AFFECTED = 0
|
|
|
|
RAY_CI_MACOS_WHEELS_AFFECTED = 0
|
2019-12-10 20:33:24 +08:00
|
|
|
RAY_CI_STREAMING_CPP_AFFECTED = 0
|
|
|
|
RAY_CI_STREAMING_PYTHON_AFFECTED = 0
|
2019-12-22 10:56:05 +08:00
|
|
|
RAY_CI_STREAMING_JAVA_AFFECTED = 0
|
2020-06-03 09:04:55 -07:00
|
|
|
RAY_CI_DASHBOARD_AFFECTED = 0
|
2020-08-03 16:37:15 -07:00
|
|
|
RAY_CI_DOCKER_AFFECTED = 0
|
2020-08-07 23:05:18 -07:00
|
|
|
RAY_CI_DOC_AFFECTED = 0
|
2020-08-26 19:36:11 -07:00
|
|
|
RAY_CI_PYTHON_DEPENDENCIES_AFFECTED = 0
|
2019-03-15 22:23:54 -07:00
|
|
|
|
2020-04-15 08:10:22 -07:00
|
|
|
event_type = None
|
|
|
|
for key in ["GITHUB_EVENT_NAME", "TRAVIS_EVENT_TYPE"]:
|
|
|
|
event_type = os.getenv(key, event_type)
|
2019-03-15 22:23:54 -07:00
|
|
|
|
2020-04-15 08:10:22 -07:00
|
|
|
if event_type == "pull_request":
|
|
|
|
|
|
|
|
commit_range = os.getenv("TRAVIS_COMMIT_RANGE")
|
|
|
|
if commit_range is None:
|
|
|
|
with open(os.environ["GITHUB_EVENT_PATH"], "rb") as f:
|
|
|
|
event = json.loads(f.read())
|
|
|
|
base = event["pull_request"]["base"]["sha"]
|
2020-04-15 17:00:38 -07:00
|
|
|
commit_range = "{}...{}".format(base, event.get("after", ""))
|
2020-04-15 08:10:22 -07:00
|
|
|
files = list_changed_files(commit_range)
|
2019-03-15 22:23:54 -07:00
|
|
|
|
2019-09-13 21:36:56 -07:00
|
|
|
print(pformat(files), file=sys.stderr)
|
|
|
|
|
2019-03-15 22:23:54 -07:00
|
|
|
skip_prefix_list = [
|
2020-08-26 19:36:11 -07:00
|
|
|
"doc/", "examples/", "dev/", "kubernetes/", "site/"
|
2019-03-15 22:23:54 -07:00
|
|
|
]
|
|
|
|
|
|
|
|
for changed_file in files:
|
2020-02-21 04:02:17 +01:00
|
|
|
if changed_file.startswith("python/ray/tune"):
|
2020-08-07 23:05:18 -07:00
|
|
|
RAY_CI_DOC_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_TUNE_AFFECTED = 1
|
|
|
|
RAY_CI_RLLIB_AFFECTED = 1
|
2020-02-16 08:52:49 -08:00
|
|
|
RAY_CI_RLLIB_FULL_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_LINUX_WHEELS_AFFECTED = 1
|
|
|
|
RAY_CI_MACOS_WHEELS_AFFECTED = 1
|
2020-07-25 06:22:54 +02:00
|
|
|
elif changed_file.startswith("python/ray/util/sgd"):
|
|
|
|
RAY_CI_SGD_AFFECTED = 1
|
|
|
|
RAY_CI_LINUX_WHEELS_AFFECTED = 1
|
|
|
|
RAY_CI_MACOS_WHEELS_AFFECTED = 1
|
2020-02-21 04:02:17 +01:00
|
|
|
elif re.match("^(python/ray/)?rllib/", changed_file):
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_RLLIB_AFFECTED = 1
|
2020-02-16 08:52:49 -08:00
|
|
|
RAY_CI_RLLIB_FULL_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_LINUX_WHEELS_AFFECTED = 1
|
|
|
|
RAY_CI_MACOS_WHEELS_AFFECTED = 1
|
2020-02-18 13:43:19 -08:00
|
|
|
elif changed_file.startswith("python/ray/serve"):
|
2021-01-12 13:08:55 -08:00
|
|
|
RAY_CI_DOC_AFFECTED = 1
|
2019-09-13 21:36:56 -07:00
|
|
|
RAY_CI_SERVE_AFFECTED = 1
|
|
|
|
RAY_CI_LINUX_WHEELS_AFFECTED = 1
|
|
|
|
RAY_CI_MACOS_WHEELS_AFFECTED = 1
|
2020-06-03 09:04:55 -07:00
|
|
|
elif changed_file.startswith("python/ray/dashboard"):
|
|
|
|
RAY_CI_DASHBOARD_AFFECTED = 1
|
2020-08-25 04:24:23 +08:00
|
|
|
elif changed_file.startswith("dashboard"):
|
|
|
|
RAY_CI_DASHBOARD_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
elif changed_file.startswith("python/"):
|
|
|
|
RAY_CI_TUNE_AFFECTED = 1
|
2020-07-25 06:22:54 +02:00
|
|
|
RAY_CI_SGD_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_RLLIB_AFFECTED = 1
|
2019-09-13 21:36:56 -07:00
|
|
|
RAY_CI_SERVE_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_PYTHON_AFFECTED = 1
|
2020-06-03 09:04:55 -07:00
|
|
|
RAY_CI_DASHBOARD_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_LINUX_WHEELS_AFFECTED = 1
|
|
|
|
RAY_CI_MACOS_WHEELS_AFFECTED = 1
|
2019-12-10 20:33:24 +08:00
|
|
|
RAY_CI_STREAMING_PYTHON_AFFECTED = 1
|
2020-08-07 23:05:18 -07:00
|
|
|
RAY_CI_DOC_AFFECTED = 1
|
2020-10-12 14:22:51 -07:00
|
|
|
if changed_file.startswith("python/setup.py") or re.match(
|
2020-10-27 10:37:25 -07:00
|
|
|
".*requirements.*\.txt", changed_file):
|
2020-08-26 19:36:11 -07:00
|
|
|
RAY_CI_PYTHON_DEPENDENCIES_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
elif changed_file.startswith("java/"):
|
|
|
|
RAY_CI_JAVA_AFFECTED = 1
|
2019-12-22 10:56:05 +08:00
|
|
|
RAY_CI_STREAMING_JAVA_AFFECTED = 1
|
2020-08-03 16:37:15 -07:00
|
|
|
elif changed_file.startswith("docker/"):
|
|
|
|
RAY_CI_DOCKER_AFFECTED = 1
|
2020-09-02 13:03:35 -07:00
|
|
|
RAY_CI_LINUX_WHEELS_AFFECTED = 1
|
2020-08-07 23:05:18 -07:00
|
|
|
elif changed_file.startswith("doc/") and changed_file.endswith(
|
|
|
|
".py"):
|
|
|
|
RAY_CI_DOC_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
elif any(
|
|
|
|
changed_file.startswith(prefix)
|
|
|
|
for prefix in skip_prefix_list):
|
|
|
|
# nothing is run but linting in these cases
|
|
|
|
pass
|
|
|
|
elif changed_file.startswith("src/"):
|
|
|
|
RAY_CI_TUNE_AFFECTED = 1
|
2020-07-25 06:22:54 +02:00
|
|
|
RAY_CI_SGD_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_RLLIB_AFFECTED = 1
|
2019-09-13 21:36:56 -07:00
|
|
|
RAY_CI_SERVE_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_JAVA_AFFECTED = 1
|
|
|
|
RAY_CI_PYTHON_AFFECTED = 1
|
|
|
|
RAY_CI_LINUX_WHEELS_AFFECTED = 1
|
|
|
|
RAY_CI_MACOS_WHEELS_AFFECTED = 1
|
2019-12-10 20:33:24 +08:00
|
|
|
RAY_CI_STREAMING_CPP_AFFECTED = 1
|
|
|
|
RAY_CI_STREAMING_PYTHON_AFFECTED = 1
|
2019-12-22 10:56:05 +08:00
|
|
|
RAY_CI_STREAMING_JAVA_AFFECTED = 1
|
2020-06-03 09:04:55 -07:00
|
|
|
RAY_CI_DASHBOARD_AFFECTED = 1
|
2020-08-07 23:05:18 -07:00
|
|
|
RAY_CI_DOC_AFFECTED = 1
|
2019-12-10 20:33:24 +08:00
|
|
|
elif changed_file.startswith("streaming/src"):
|
|
|
|
RAY_CI_STREAMING_CPP_AFFECTED = 1
|
|
|
|
RAY_CI_STREAMING_PYTHON_AFFECTED = 1
|
2019-12-22 10:56:05 +08:00
|
|
|
RAY_CI_STREAMING_JAVA_AFFECTED = 1
|
2019-12-10 20:33:24 +08:00
|
|
|
elif changed_file.startswith("streaming/python"):
|
|
|
|
RAY_CI_STREAMING_PYTHON_AFFECTED = 1
|
2019-12-22 10:56:05 +08:00
|
|
|
elif changed_file.startswith("streaming/java"):
|
|
|
|
RAY_CI_STREAMING_JAVA_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
else:
|
|
|
|
RAY_CI_TUNE_AFFECTED = 1
|
2020-07-25 06:22:54 +02:00
|
|
|
RAY_CI_SGD_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_RLLIB_AFFECTED = 1
|
2019-09-13 21:36:56 -07:00
|
|
|
RAY_CI_SERVE_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_JAVA_AFFECTED = 1
|
|
|
|
RAY_CI_PYTHON_AFFECTED = 1
|
2020-08-07 23:05:18 -07:00
|
|
|
RAY_CI_DOC_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_LINUX_WHEELS_AFFECTED = 1
|
|
|
|
RAY_CI_MACOS_WHEELS_AFFECTED = 1
|
2019-12-10 20:33:24 +08:00
|
|
|
RAY_CI_STREAMING_CPP_AFFECTED = 1
|
2019-12-22 10:56:05 +08:00
|
|
|
RAY_CI_STREAMING_PYTHON_AFFECTED = 1
|
|
|
|
RAY_CI_STREAMING_JAVA_AFFECTED = 1
|
2021-01-15 09:43:34 -08:00
|
|
|
RAY_CI_DASHBOARD_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
else:
|
|
|
|
RAY_CI_TUNE_AFFECTED = 1
|
2020-07-25 06:22:54 +02:00
|
|
|
RAY_CI_SGD_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_RLLIB_AFFECTED = 1
|
2020-02-16 08:52:49 -08:00
|
|
|
RAY_CI_RLLIB_FULL_AFFECTED = 1
|
2019-09-13 21:36:56 -07:00
|
|
|
RAY_CI_SERVE_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_JAVA_AFFECTED = 1
|
|
|
|
RAY_CI_PYTHON_AFFECTED = 1
|
2020-08-07 23:05:18 -07:00
|
|
|
RAY_CI_DOC_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
RAY_CI_LINUX_WHEELS_AFFECTED = 1
|
|
|
|
RAY_CI_MACOS_WHEELS_AFFECTED = 1
|
2019-12-10 20:33:24 +08:00
|
|
|
RAY_CI_STREAMING_CPP_AFFECTED = 1
|
2019-12-22 10:56:05 +08:00
|
|
|
RAY_CI_STREAMING_PYTHON_AFFECTED = 1
|
|
|
|
RAY_CI_STREAMING_JAVA_AFFECTED = 1
|
2021-01-15 09:43:34 -08:00
|
|
|
RAY_CI_DASHBOARD_AFFECTED = 1
|
2019-03-15 22:23:54 -07:00
|
|
|
|
2020-04-09 23:36:06 +02:00
|
|
|
if not RAY_CI_TUNE_AFFECTED and not RAY_CI_SERVE_AFFECTED and \
|
|
|
|
not RAY_CI_JAVA_AFFECTED and not RAY_CI_PYTHON_AFFECTED and not \
|
|
|
|
RAY_CI_STREAMING_CPP_AFFECTED and \
|
|
|
|
not RAY_CI_STREAMING_PYTHON_AFFECTED and \
|
2020-07-25 06:22:54 +02:00
|
|
|
not RAY_CI_STREAMING_JAVA_AFFECTED and \
|
|
|
|
not RAY_CI_SGD_AFFECTED:
|
2020-04-09 23:36:06 +02:00
|
|
|
RAY_CI_ONLY_RLLIB_AFFECTED = 1
|
|
|
|
|
2019-09-13 21:36:56 -07:00
|
|
|
# Log the modified environment variables visible in console.
|
2020-04-15 08:10:22 -07:00
|
|
|
print(" ".join([
|
|
|
|
"RAY_CI_TUNE_AFFECTED={}".format(RAY_CI_TUNE_AFFECTED),
|
2020-07-25 06:22:54 +02:00
|
|
|
"RAY_CI_SGD_AFFECTED={}".format(RAY_CI_SGD_AFFECTED),
|
2020-04-15 08:10:22 -07:00
|
|
|
"RAY_CI_ONLY_RLLIB_AFFECTED={}".format(RAY_CI_ONLY_RLLIB_AFFECTED),
|
|
|
|
"RAY_CI_RLLIB_AFFECTED={}".format(RAY_CI_RLLIB_AFFECTED),
|
|
|
|
"RAY_CI_RLLIB_FULL_AFFECTED={}".format(RAY_CI_RLLIB_FULL_AFFECTED),
|
|
|
|
"RAY_CI_SERVE_AFFECTED={}".format(RAY_CI_SERVE_AFFECTED),
|
2020-06-03 09:04:55 -07:00
|
|
|
"RAY_CI_DASHBOARD_AFFECTED={}".format(RAY_CI_DASHBOARD_AFFECTED),
|
2020-08-07 23:05:18 -07:00
|
|
|
"RAY_CI_DOC_AFFECTED={}".format(RAY_CI_DOC_AFFECTED),
|
2020-04-15 08:10:22 -07:00
|
|
|
"RAY_CI_JAVA_AFFECTED={}".format(RAY_CI_JAVA_AFFECTED),
|
|
|
|
"RAY_CI_PYTHON_AFFECTED={}".format(RAY_CI_PYTHON_AFFECTED),
|
|
|
|
"RAY_CI_LINUX_WHEELS_AFFECTED={}".format(RAY_CI_LINUX_WHEELS_AFFECTED),
|
|
|
|
"RAY_CI_MACOS_WHEELS_AFFECTED={}".format(RAY_CI_MACOS_WHEELS_AFFECTED),
|
|
|
|
"RAY_CI_STREAMING_CPP_AFFECTED={}".format(
|
|
|
|
RAY_CI_STREAMING_CPP_AFFECTED),
|
|
|
|
"RAY_CI_STREAMING_PYTHON_AFFECTED={}".format(
|
|
|
|
RAY_CI_STREAMING_PYTHON_AFFECTED),
|
|
|
|
"RAY_CI_STREAMING_JAVA_AFFECTED={}".format(
|
|
|
|
RAY_CI_STREAMING_JAVA_AFFECTED),
|
2020-08-26 19:36:11 -07:00
|
|
|
"RAY_CI_DOCKER_AFFECTED={}".format(RAY_CI_DOCKER_AFFECTED),
|
|
|
|
"RAY_CI_PYTHON_DEPENDENCIES_AFFECTED={}".format(
|
|
|
|
RAY_CI_PYTHON_DEPENDENCIES_AFFECTED),
|
2020-04-15 08:10:22 -07:00
|
|
|
]))
|