返回
一劳永逸!用这个自动化脚本搞定多环境打tag!
前端
2024-02-01 18:56:54
作者:Mr.Wade
发布时间:2023-08-01
前言
在软件开发中,我们经常需要在不同的环境(如测试环境、预发布环境和生产环境)中部署和测试我们的应用程序。为了方便管理和区分这些不同的环境,我们通常会使用不同的标签(tag)来标记不同的环境。
传统的打tag方式是手动在代码仓库中创建标签,然后触发CI/CD工具进行构建和部署。这种方式比较麻烦,容易出错,而且每次都要重复创建标签。
为了解决这个问题,我写了一个自动区分环境打tag的脚本。这个脚本可以根据当前的环境自动生成标签,然后触发CI/CD工具进行构建和部署。这样一来,我们就可以一劳永逸地解决多环境打tag的问题了。
脚本介绍
这个脚本是一个Python脚本,它使用argparse库来解析命令行参数。脚本的用法如下:
usage: auto_tag.py [-h] [-e ENVIRONMENT] [-b BRANCH]
positional arguments:
ENVIRONMENT 环境名称,如test, preprod, prod
BRANCH 分支名称,如main, develop
optional arguments:
-h, --help show this help message and exit
脚本的运行方式如下:
python auto_tag.py -e test -b main
脚本运行后,会自动生成一个标签,格式如下:
environment-branch-timestamp
例如,如果当前的环境是测试环境,分支是main,时间戳是20230801123456,那么生成的标签就是:
test-main-20230801123456
脚本生成标签后,会触发CI/CD工具进行构建和部署。这样一来,我们就完成了一次自动化的多环境打tag和部署。
脚本实现
脚本的实现非常简单,代码如下:
import argparse
import datetime
import os
import sys
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-e', '--environment', help='环境名称,如test, preprod, prod')
parser.add_argument('-b', '--branch', help='分支名称,如main, develop')
args = parser.parse_args()
# 获取当前时间戳
timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
# 生成标签
tag = f'{args.environment}-{args.branch}-{timestamp}'
# 打标签
os.system(f'git tag {tag}')
# 推送标签
os.system('git push origin --tags')
# 触发CI/CD工具进行构建和部署
os.system('git push ci master')
if __name__ == '__main__':
main()
结语
这个自动区分环境打tag的脚本可以帮助我们解决多环境打tag的问题,提高我们的开发效率。脚本的使用非常简单,只需运行脚本并指定环境和分支名称即可。脚本会自动生成标签,触发CI/CD工具进行构建和部署。
我希望这个脚本能对大家有所帮助。如果大家有任何问题或建议,欢迎随时与我联系。