目前 微信开发者工具 只支持 MacOS 与 Windows 系统,所以最终选用的部署服务器环境为基于虚拟机的 Windows10 系统。
GitLab Runner 安装
1. 在C:\ 目录下创建 GitLab-Runner 文件夹
2. 以管理员身份运行 PowerShell ,执行以下命令 。(注意不要使用PowerShell ISE, 会报错)
cd C:\GitLab-Runner
.\gitlab-runner.exe install --user ENTER-YOUR-USERNAME --password ENTER-YOUR-PASSWORD
.\gitlab-runner.exe start
一定要使用用户账户运行 gitlab-runner
报错示例:
FATAL: Failed to install gitlab-runner: The account name is invalid or does not exist, or the password is invalid for the account name specified.
执行命令;
.\gitlab-runner.exe install --user ".\ENTER-YOUR-USERNAME" --password "ENTER-YOUR-PASSWORD"
报错示例:
FATAL: Failed to start gitlab-runner: The service did not start due to a logon failure.
报错原因:
需要添加 SeServiceLogonRight 权限
操作步骤:
- 进入 控制面板 > 系统和安全 > 管理工具
- 打开 本地安全策略
- 在左侧列表中选择 安全设置 > 本地策略 > 用户权限分配
- 在右侧列表中打开 作为服务登录
- 添加用户(“手动添加”或使用“ 高级 ”按钮)并应用设置
3. 更新 C:\GitLab-Runner\config.toml 配置
concurrent = 4 //同时并发执行构建项目数,可根据实际情况修改
check_interval = 0
[session_server]
session_timeout = 1800
[[runners]]
name = "windows wechat mini program"
url = "https://gitlab.com/"
token = "YOUR-TOKEN" //这里填写你的Token, 在对应项目中的 Setting => CI/CD => Runners 中获取
executor = "shell"
shell = "powershell"
[runners.custom_build_dir]
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
运行命令使配置生效
.\gitlab-runner.exe stop
.\gitlab-runner.exe start
配置 .gitlab.yml 文件,在项目根目录下创建 .gitlab-ci.yml 文件
stages:
- build
- deploy
qa-build: &buildStage
image: node:10.20.1
stage: build
variables:
APP_ENV: qa
script:
- npm install
- NODE_ENV=$APP_ENV npm run deploy
artifacts:
untracked: false
expire_in: 1 day
paths:
- dist
only:
- develop
tags:
- gitlab-org
staging-build:
<<: *buildStage
variables:
APP_ENV: staging
only:
- tags
preview:
stage: deploy
variables:
CLI: 'C:\wechat-dev\cli.bat'
APP_PROJECT_DIR: '$CI_PROJECT_DIR\dist'
script:
- echo $CI_COMMIT_MESSAGE
- echo $APP_PROJECT_DIR
- '& "$CLI" preview --project $APP_PROJECT_DIR'
# when: manual //手动触发
only:
- develop
tags:
- windows-wechat-mini-program
upload:
stage: deploy
dependencies:
- staging-build
variables:
APP_NAME: "Wechat mini program"
CLI: 'C:\wechat-dev\cli.bat'
APP_PROJECT_DIR: '$CI_PROJECT_DIR\dist'
script:
- echo $CI_COMMIT_MESSAGE
- '& "$CLI" upload -v $CI_COMMIT_REF_NAME -d "$APP_NAME" --project $APP_PROJECT_DIR'
only:
- tags
tags:
- windows-wechat-mini-program