返回

一劳永逸!用这个自动化脚本搞定多环境打tag!

前端

作者: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工具进行构建和部署。

我希望这个脚本能对大家有所帮助。如果大家有任何问题或建议,欢迎随时与我联系。