scripts/ci_test_change_files.py (32 lines of code) (raw):

# -*- encoding:utf-8 -*- # Copyright (c) Alibaba, Inc. and its affiliates. import argparse import json import logging import sys try: from easy_rec.python.utils.io_util import http_read except Exception as ex: logging.error(ex) sys.exit(2) logging.basicConfig( level=logging.INFO, format='[%(asctime)s][%(levelname)s] %(message)s') if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument( '--pull_request_num', type=int, default=None, help='pull request number') parser.add_argument( '--exclude_dirs', nargs='*', type=str, help='the directory to be ignored') args = parser.parse_args() url = 'https://api.github.com/repos/alibaba/EasyRec/pulls/%d/files' % args.pull_request_num pull_request_data = http_read(url) changes = json.loads(pull_request_data) change_dir = [] for obj in changes: filename = obj['filename'] toks = filename.split('/') if len(toks) > 0: if toks[0] not in args.exclude_dirs: change_dir.append(toks[0]) change_dir = list(set(change_dir)) logging.info('changed directories: %s' % ','.join(change_dir)) if len(change_dir) == 0: sys.exit(1)