gitlab ci自动化构建与部署常用配置-Java maven 项目

gitlab ci自动化构建与部署常用配置-Java maven 项目

在使用 Gitlab CI 进行自动化构建部署的时候,需要新建一个 .gitlab-ci.yml配置文件,里面是我们自动化构建的具体步骤的脚本:

image: maven:3-jdk-8 # 使用的 Docker 镜像 名称,非必填
stages: # 定义构建的阶段
  - build # 一般这个阶段做测试代码构建
  - prepare   # 这个阶段作用在一个分支,用于部署测试测试环境
  - prod  # 这个阶段作用在另一个分支,用户发布生产环境
build: # 对应 stages 定义的阶段
  stage: build
  tags:  # 即指定运行的runner节点,这里在gitlab管理端可以配置,并且需要给项目开启使用
    - docker
  variables: # 定义变量,视情况而定,可以在构建阶段使用,这里是数据库的示例
    MYSQL_DATABASE: demo 
    MYSQL_ROOT_PASSWORD: 123456
  services: # 使用的docker 服务名
    - name: mysql:8.0
      alias: docker-mysql # 服务别名
    - name: redis:5.0.8
      alias: docker-redis
  script: # 执行的脚本
    - pwd
    - cat /etc/hosts
    - mvn clean package deploy -U -Pci # maven 项目的清除、打包、推送远程 命令
  # 编译后有产物,所以要指定下过期时间和路径, 以供于其他阶段使用
  artifacts:
    expire_in: 1 days # 保留一天
    paths:
      - target/*.jar # 保留的文件
  allow_failure: true   #允许失败

prepare:
  stage: prepare
  needs: # 该阶段需要的先前条件
    - job: build # 需要build 阶段完成并且有产物
      artifacts: true
  # 只作用在master分支
  only:
    - master
  tags:
    - Grid
  # 服务器上配了进程守护直接执行杀死进程的脚本
  script:
    - pwd
    # 这里可以跟部署项目的服务器做配合,实现自动化的部署,比如服务器上配置守护进程,这里直接把项目推到服务器,然后杀死正在运行的项目

prod:
  stage: prod
  needs:
    - job: build
      artifacts: true
  only:
    - prod
  tags:
    - docker
  variables:
    JAR_NAME: **.jar
  before_script: # 在执行脚本执行的操作,这里是避免jar冲突覆盖,定义了一个jar名
    - TMP_NAME=${JAR_NAME}-`date +"%Y%m%d%H%M%S"`
    - echo "临时文件名 ${TMP_NAME}"
  script:
    - 比如直接把项目推到服务器,然后服务器上部署了自动检测的一些程序或者脚本





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值