经验分享GitLab 多平台联动自动化编译实现

Posted 极智视界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经验分享GitLab 多平台联动自动化编译实现相关的知识,希望对你有一定的参考价值。

欢迎关注我的公众号 [极智视界],获取我的更多笔记分享

  大家好,我是深度视界。本文介绍了 GitLab 多平台联动自动化编译实现。

  GitLab 是非常优秀的代码版本管理工具、代码自动化检查工具以及工程自动化部署工具,这里主要介绍 GitLab 多平台联动自动化编译实现,主要包括 linux、windows、docker 平台。关于 GitLab 的安装及 linux 宿主机 CI 自动化编译配置可以参考我的这篇:《【经验分享】GitLab CI 构建 linux 自动化编译》,所以这里就不介绍 linux 上的实现了,主要介绍 windows 和 docker 的实现。

文章目录

1、windows 自动化编译

  主要是配置 gitlab-runner,首先下载 gitlab-runner.exe,下载地址:https://docs.gitlab.com/runner/install/windows.html

  然后以管理员权限打开 PowerShell,cd 到 gitlab-runer.exe 所在文件夹,执行:

.\\gitlab-runner.exe register    # 配置url和token, 最后选择shell

# 然后
.\\gitlab-runner.exe install
.\\gitlab-runner.exe start

  比如在 register 的时候创建的 tag 叫做 windows,则在 .gitlab-ci.yml 中可以这么写:

windows_build:
  tags:
    - windows
  stage: build
  script: 
    - ./build.bat

2、docker 自动化编译

  docker 的 gitlab-runner 配置要稍微复杂一些。下面开始。

mkdir gitlab-runner-docker

vim docker-compose.yml

  加入以下内容:

version: "3"
services:
    app:
        image: gitlab/gitlab-runner
        container_name: gitlab-runner-docker
        restart: always
        volumes:
            - ./config:/etc/gitlab-runner
            - /var/run/docker.sock:/var/run/docker.sock

  然后执行:

docker-compose up --build -d

  如果你想撤回/删除刚才拉取的镜像/容器,则可以使用 docker-compose down。

  然后配置 gitlab-runner

docker exec -it gitlab-runner gitlab-runner register   # 配置url和token, 最后选择docker

  在上面最后选择 docker 后需要再输入一个镜像名称,这个镜像就是后面自动化编译会拉取的镜像环境。到这里 docker gitlab-runner 的配置已经完成,但还没结束,继续。

  你需要把上面你的镜像 push 到 docker hub,可能涉及的指令:

## 若是从容器开始操作
docker commit dockerName dockerHubPro/imageName:tag
docker push dockerHubPro/imageName:tag

## 若是从本地镜像开始操作
docker tag localImageName:tag0 dockerHubPro/imageName:tag1
docker push dockerHubPro/imageName:tag1

  然后后面难免会遇到需要更新/升级 docker 依赖环境,就需要重新 commit 和 push,这样 CI 触发 gitlab-runner 的时候就会从 docker hub 拉取环境更新后的镜像了。

  假设上面配置的 register tag 为 docker_linux,那么这个时候 .gitlab-ci.yml 中可以这么写:

docker_build:
  tags:
    - docker_linux
  stage: build
  script:
    - chmod 777 build.sh
    - ./build.sh

  这样就搞定了。


  好了,以上分享了 GitLab 多平台联动自动化编译实现方法,希望我的分享能对你的学习有一点帮助。


 【公众号传送】

《【经验分享】GitLab 多平台联动自动化编译实现》


扫描下方二维码即可关注我的微信公众号【极智视界】,获取更多AI经验分享,让我们用极致+极客的心态来迎接AI !

以上是关于经验分享GitLab 多平台联动自动化编译实现的主要内容,如果未能解决你的问题,请参考以下文章

经验分享vs2019 pcl 点云处理开发环境搭建教程

极智开发 | ubuntu 安装 gitlab

经验分享windows 源码编译 opencv

经验分享ubuntu 源码编译 boost

创维智控项目管理经验分享

银行 Zabbix 监控架构部署等经验分享 | 最佳实践