语义化版本控制(Semantic Versioning):
MAJOR.MINOR.PATCH
1.0.0
日期版本控制:
YYYY.MM.DD
2023.06.17
使用Git标签(Tag)来标记特定的版本,便于追踪和回滚。
# 创建标签
git tag -a v1.0.0 -m "Release version 1.0.0"
# 推送标签
git push origin v1.0.0
创建一个新的发布分支,用于进行最终测试和发布准备。
git checkout -b release-v1.0.0
在发布分支上创建版本标签,标记当前发布版本。
git tag -a v1.0.0 -m "Release version 1.0.0"
git push origin v1.0.0
生成可分发的发布包,例如压缩包、安装包或Docker镜像等。
# 示例:生成压缩包
tar -czvf release-v1.0.0.tar.gz source-code/
在测试环境中部署生成的发布包,进行全面的回归测试,确保功能正常。
# 示例:部署到测试环境
scp release-v1.0.0.tar.gz user@testing-server:/path/to/deploy
在生产环境中部署经过测试的发布包,确保更新顺利进行。
# 示例:部署到生产环境
scp release-v1.0.0.tar.gz user@production-server:/path/to/deploy
在发布过程中,如果遇到重大问题,需要能够快速回滚到之前的稳定版本。
# 示例:回滚到上一个版本
git checkout v0.9.0
使用CI/CD工具(如Jenkins、GitLab CI、GitHub Actions)实现自动化发布流程。
# 示例:GitHub Actions配置文件
name: Release
on:
push:
tags:
- 'v*.*.*'
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
- name: Create Release
run: npm run release
创建Jenkins任务:
配置构建步骤:
# 拉取代码
git checkout $GIT_TAG
# 构建项目
npm install
npm run build
# 生成发布包
tar -czvf release-$GIT_TAG.tar.gz dist/
# 部署到测试环境
scp release-$GIT_TAG.tar.gz user@testing-server:/path/to/deploy
# 测试通过后,部署到生产环境
scp release-$GIT_TAG.tar.gz user@production-server:/path/to/deploy
.gitlab-ci.yml
文件:
stages:
- build
- test
- release
build:
stage: build
script:
- npm install
- npm run build
test:
stage: test
script:
- npm run test
release:
stage: release
script:
- tar -czvf release-${CI_COMMIT_TAG}.tar.gz dist/
- scp release-${CI_COMMIT_TAG}.tar.gz user@production-server:/path/to/deploy
only:
- tags
版本发布管理是确保软件稳定可靠发布的重要环节。通过合理的版本命名规范、系统化的发布流程和自动化工具,可以提高发布效率,减少风险。制定详细的回滚计划和最佳实践,确保在问题发生时能够迅速应对。