自动化部署(Gitlab)

发布时间 2023-05-08 11:33:56作者: 晚秋时节

小程序可持续化自动部署

一、安装gitlab-runner

官方地址:https://docs.gitlab.com/runner/install/
image

windows安装如下:
nodejs的环境变量一定要放到系统变量中!!!

  1. 进入硬盘任意一个目录,下载gitlab-runner.exe文件,根据电脑是64位还是32位下载
  2. cd 到文件所在目录中,进行注册。命令:./gitlab-xxx-xxx.exe register 注意:一定要用管理员权限启动powershell
  3. 根据提示输入URL、token、描述等,其中URL、token在项目中找,具体如图:
    image
  4. 注册中有一步,输入runner执行程序。Please enter the executor:
    选择shell
  5. 至此,runner已经启动好了,可查看状态进行进一步确认。
    a. ./gitlab-xxx-xxx.exe verify 查看runner状态
    alive代表启动状态
    image
    b. ./gitlab-xxx-xxx.exe restart 重启runner
  6. 注册完毕后,回项目中,查看runners是否存在。绿色代表注册成功,红色代表失败
    image
  7. 进入runner安装目录,打开config.toml 文件
    runner官方链接:https://docs.gitlab.com/runner/executors/
    image

二、.gitlab-ci.yml

文件字段详细描述在官方ci。大家可自行查看

# 任务阶段 没有定义的话 默认式test阶段 名称、个数自定义
# 从上到下依次执行,如果某个任务失败了,一般情况下不会继续往下执行
stages:
    - load # 安装项目依赖
    - test-build # 测试打包
    - test-deploy # 测试部署
    - prod-build # 生产打包
    - prod-deploy # 生产上传部署

# 缓存
# 由于下一个任务执行会把上一个任务产物给删掉,比如node_modules
# 此时cache作用就体现出来了 将需要的文件填写进去

cache:
    paths:
        - node_modules
        - dist

load-job: # 任务名称(名称自定义)
    stage: load # 上面stages定义的步骤1
    only: # 限制条件 仅develop、release分支执行job
        - develop
        - release
    script:
        - echo "开始 cnpm install" # echo 脚本命令 相当于console.log()
        - cnpm i # 安装项目依赖
        - echo "结束 cnpm install"

test-build-job:
    stage: test-build
    only:
        - develop
    script:
        - whoami	# 显示当前登录的用户名
        - pwd			# 当前工作目录
        - cnpm -v # 查看cnpm版本
        - npm run build:test # 测试打包命令

test-deploy-job:
    stage: test-deploy
    only:
        - develop
    script:
        - pwd
        - echo "开启授权-二维码✨✨✨"
        - npm run deploy:test # 测试部署命令
        - echo "结束授权-二维码✨✨✨"

prod-build-job:
    stage: prod-build
    only:
        - release
    script:
        - whoami
        - pwd
        - cnpm -v
        - echo "开始生产环境打包✨✨✨"
        - npm run build				# 生产部署
        - echo "结束生产环境打包✨✨✨"

prod-deploy-job:
    stage: prod-deploy
    only:
        - release
    before_script: # script之前执行
        - echo "✨✨✨生产环境上传begin"
    script:
        - pwd
        - npm run deploy:prod	# 生产打包
    after_script: # script之后执行
        - echo "✨✨✨生产环境上传end"

三、任务进度

image

其中,每个阶段可点进去查看详细日志信息。✔代表成功,×代表失败(进入具体阶段查看报错日志信息)