LOADING

加载过慢请开启缓存 浏览器默认开启

软件开发版本控制

2020/9/17

在软件开发过程中主要分以下几个版本历程

版本 环境 说明
developer alpha 最基本的开发环境
release_xxx beta 预发布的新版本
staging staging 模拟线上测试
master mater 灰度测试
vxxx.xxx(tag) pro 生产环境
fix-xxx 修复bug
feature/xxx 新特性的分支

版本迭代历程
developer -> release_xxx -> staging -> master -> vxxx.xxx(tag)

结合 Gitlab 的ci,可以便捷的控制代码的分支对应不同的环境,实现代码提交后自动编译发布到对应的环境

image: docker

stages:
  - build
  - deploy


variables: &VARIABLES
  BRANCH_NAME: $CI_COMMIT_REF_NAME$CI_MERGE_REQUEST_TARGET_BRANCH_NAME

build:
  stage: build

  rules:
    - if: $CI_COMMIT_TAG
      when: never
    - if: '$CI_COMMIT_BRANCH =~ /^release/'
      when: never
    - if: $CI_COMMIT_BRANCH

  script:
    - docker build -t "$CI_REGISTRY_IMAGE:$BRANCH_NAME-$CI_COMMIT_SHORT_SHA" .
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
    - docker push "$CI_REGISTRY_IMAGE:$BRANCH_NAME-$CI_COMMIT_SHORT_SHA"

build_version:
  stage: build

  rules:     
    - if: '$CI_COMMIT_BRANCH !~ /^release/'
      when: never
    - if: $CI_COMMIT_TAG
    - if: $CI_COMMIT_BRANCH
  script:
    - echo ${CI_REGISTRY_IMAGE}:${BRANCH_NAME}
    - docker build -t ${CI_REGISTRY_IMAGE}:${BRANCH_NAME} .
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
    - docker push ${CI_REGISTRY_IMAGE}:${BRANCH_NAME}

deploy:
  stage: deploy
  only:
    - tags
  when: manual
  script:
    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
    - echo ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}
    - docker push ${CI_REGISTRY_IMAGE}:${CI_COMMIT_REF_NAME}