gitlab-runner-mac-win

gitlab 配置 mac/win 系统 runner,win 有问题【解决】

gitlab 的 runner 就是触发 ci/cd 之后,执行 gitlab-ci.yml 里的脚本的容器。一般呢,都是 docker。我最近有个 electron 的项目,想做 cicd 的自动打包,需要 mac 和 win 环境,于是先把自己的电脑配置为 runner 跑一次。

mac

安装 runner

  • 下载

    1
    sudo curl --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-darwin-amd64
  • 给权限

    1
    sudo chmod +x /usr/local/bin/gitlab-runner
  • 安装和启动 runner 服务

    1
    2
    3
    cd ~
    gitlab-runner install
    gitlab-runner start
  • 检验安装结果

    1
    gitlab-runner -h

注册

  • 获取 tocken

    • 在项目的 Setting > CI/CD 页
      • Runners settings > Specific Runners
      • 获取 URL 和 tocken
        image
  • 执行注册命令

    1
    gitlab-runner register
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    ➜  gitlab-runner register
    Runtime platform arch=amd64 os=darwin pid=68127 revision=ac2a293c version=11.11.2
    WARNING: Running in user-mode.
    WARNING: Use sudo for system-mode:
    WARNING: $ sudo gitlab-runner...

    Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
    # 输入获取的URL

    Please enter the gitlab-ci token for this runner:
    # 输入tocken

    Please enter the gitlab-ci description for this runner:
    [hostname]: my-runner

    Please enter the gitlab-ci tags for this runner (comma separated):
    mac

    Registering runner... succeeded runner=6sbhZbPi

    Registering runner... succeeded runner=6sbhZbPi

    Please enter the executor: docker, parallels, shell, docker-ssh+machine, kubernetes, docker-ssh, ssh, virtualbox, docker+machine:
    shell

    Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
  • 进入项目的 Setting > CI/CD 页查看新注册的 runner

    • Runners settings > Specific Runners

使用这个 runner

参考

win

安装

  • 创建一个文件夹,eg: C:\GitLab-Runner
  • 下载二进制安装包(x86/amd64),(我用的 x86)放到我们创建的文件夹里,重命名二进制包为 gitlab-runner.exe

注册 runner

  • 开一个 powershell 右键以管理员运行

  • 进入刚刚创建的文件夹路径

  • 执行注册命令,

    1
    2
    .\gitlab-runner.exe register

    跟 mac 下的 runner 注册流程一致,输入 gitlab 项目里的网址 URL 和 tocken,选择 executor 为 shell,tag 为 windows

安装 runner 服务并启动

  • 执行

    1
    2
    .\gitlab-runner.exe install
    .\gitlab-runner.exe start

参考

问题

gitlab 报错乱码

参考中文乱码的解决方案,无效;另一个方案为改系统语言为英文,重启依旧有乱码。

gitlab 执行 git 报错乱码

执行 shell 为 powershell,报错信息看起来 git’clone 没有成功;但是环境变量已经配置好了。重启电脑之后好了。

DEBUG_PROD=true yarn package 报错

image

原因为,在 windows 中的执行环境为 powershell,设置 node 临时环境变量的语法跟 linux 系统不一样。

改为

1
$env:DEBUG_PROD=true; yarn package