diff --git a/docker-compose.yml b/docker-compose.yml index d12c252..4840f94 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,6 +8,8 @@ services: - "/Volumes/data/ws_python/wxz/JenkinsWebHookTrigger/lastcommit.txt:/lastcommit.txt" environment: RUN_INSTRUCT: "python /main.py runserver 0.0.0.0:7998" + JWHT_GIT_PROJECT_DIR: "/epmet-saas" + JWHT_LAST_DEPLOY_COMMIT_RECORD: "/lastcommit.txt" restart: "unless-stopped" logging: driver: local diff --git a/lastcommit.txt b/lastcommit.txt index 2d7a74a..35ea3c3 100644 --- a/lastcommit.txt +++ b/lastcommit.txt @@ -1 +1 @@ -5b0ad41e70f65873bfcb096b74c4d16e3c7a4898 \ No newline at end of file +83607de4be0a6c7a8911c51bd4878e2190dd90d9 \ No newline at end of file diff --git a/main.py b/main.py index 9bf1a63..fdd1263 100644 --- a/main.py +++ b/main.py @@ -15,20 +15,15 @@ epmet_root_svc_name_reg = "^([^/]+)/.*$" epmet_module_svc_name_reg = "^epmet-module/([^/]+)/.*$" commit_regex = "^([0-9a-z]{40}) .*$" -max_commit_qty = 20 - +# 项目绝对路径 +git_project_env = os.environ.get('JWHT_GIT_PROJECT_DIR') +git_project_dir = git_project_env if git_project_env else "epmet-saas" -def findIndexOfLastCommit(commits: list, last_commit_ver: str): - idx: int = None - for c in commits: - if c.startswith(last_commit_ver): - return idx - else: - if not idx: - idx = 0 - idx += 1 +# 上一次提交记录文件 +last_deploy_commit_record = os.environ.get('JWHT_LAST_DEPLOY_COMMIT_RECORD') +commit_record_file_path = last_deploy_commit_record if last_deploy_commit_record else "./lastcommit.txt" - return idx +max_commit_qty = 20 def findLatestCommits(commits: list, last_commit_ver: str, max_amount: int): @@ -63,7 +58,7 @@ def findModuleList(commits: str): service_set: set = set() for c in commits: try: - rst = os.popen("cd epmet-saas && git show {} --stat --name-only|grep 'epmet-'".format(c)) + rst = os.popen("cd {} && git show {} --stat --name-only|grep 'epmet-'".format(git_project_dir, c)) files = rst.readlines() for file in files: svc_name = find_service_name_from_file(file) @@ -97,7 +92,7 @@ def read_last_commit_ver(): 读取上次发布到的版本号(包含) :return: """ - with open('./lastcommit.txt', 'rt') as lastcommit_file: + with open(commit_record_file_path, 'rt') as lastcommit_file: line_contents = lastcommit_file.readlines() if len(line_contents) > 0: return line_contents[0] @@ -108,7 +103,7 @@ def write_last_commit_ver(new_ver): 写入上次发布到的版本号(包含) :return: """ - with open('./lastcommit.txt', 'wt') as lastcommit_file: + with open(commit_record_file_path, 'wt') as lastcommit_file: lastcommit_file.write(new_ver) @@ -127,15 +122,15 @@ def deploy_svcs(svc_list): def do(): # 切换分支 - os.system("cd epmet-saas && git checkout dev") + os.system("cd {} && git checkout dev".format(git_project_dir)) # 更新代码 - os.system("cd epmet-saas && git pull") + os.system("cd {} && git pull".format(git_project_dir)) last_commit_ver = read_last_commit_ver() try: - stream = os.popen("cd epmet-saas && git log --pretty=oneline --no-merges -20") + stream = os.popen("cd {} && git log --pretty=oneline --no-merges -20".format(git_project_dir)) commits = stream.readlines() # 根据commits找出最近提交的commits @@ -159,12 +154,16 @@ def do(): finally: stream.close() -@app.route(rule='/on-dev-push', methods=['GET']) -def on_dev_push(): + +if __name__ == '__main__': do() - return "success" + +# @app.route(rule='/on-dev-push', methods=['GET']) +# def on_dev_push(): +# do() +# return "success" -app.run(host="0.0.0.0", port=7998, debug=True) # 多线程模式 +# app.run(host="0.0.0.0", port=7998, debug=True) # 多线程模式 -# python main.py runserver 0.0.0.0:7999 \ No newline at end of file +# python main.py runserver 0.0.0.0:7999 diff --git a/test.py b/test.py index e64f970..3e8f908 100644 --- a/test.py +++ b/test.py @@ -1,7 +1,12 @@ -import re +import re, os -epmet_module_svc_name_reg = "^epmet-module/([^/]+)/.*$" -url = "epmet-module/gov-org-server/abc.java" +# 项目绝对路径 +git_project_env = os.environ.get('JWHT_GIT_PROJECT_DIR') +git_project_dir = git_project_env if git_project_env else "epmet-saas" -match = re.match(epmet_module_svc_name_reg, url) -print(match.groups()) +# 上一次提交记录文件 +last_deploy_commit_record = os.environ.get('JWHT_LAST_DEPLOY_COMMIT_RECORD') +commit_record_file_path = last_deploy_commit_record if last_deploy_commit_record else "./lastcommit.txt" + +print(git_project_dir) +print(commit_record_file_path) \ No newline at end of file