Gitlab-CI实现

目录

概要

Gitlab-CI实现步骤 

参考文档


概要

由于日常开发过程中,需要经常打包dist包后,发给后端部署,造成不便。而CI,Continuous Integration,为持续集成。即在代码构建过程中持续地进行代码的集成、构建。

Gitlab-CI实现步骤 

First:安装gitlab-runner

       可以参考官网https://docs.gitlab.com/runner/install/

Second:   本机上注册一个Runner

                 打开Gitlab官网,你目前存在的项目,新建个也行。找到Gitlab的Settings的CI/CD,

                 点击后会看见Runner,右侧有个Expand展开按钮,点击。

 

                                                                     图1 

 记住这里的2跟3提供的url跟token,对应下面的(2)跟(3)。

(1)执行

gitlab-runner register

(2)指定git的URL

 Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com )
 https://gitlab.com

(3)指定gitlab-runner的token

 Please enter the gitlab-ci token for this runner
 xxx

(4)关联git和runner的tag(随便取)

 Please enter the gitlab-ci tags for this runner (comma separated):
 my-tag,another-tag

(5)给tag的描述(随便取)

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

(6)选择runner的执行环境

 Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell (Mac可以在本机器上运行)

建好之后,在图1的下方就能看见有了个Runner,注意看是不是绿色点,不是绿色点说明还没成功Running,这时候需要开启gitlab-runner服务:

gitlab-runner run // 运行成功的话,对应settings->CI/CD会出现一个绿点

Third:   编写.gitlab-ci.yml,然后push上去,在gitlab项目页面中打开CI/CD,即可看到Pipelines,即流水线,可以查看Status状态。

              下面为笔者写的简陋版yml:

stages:
  - deploy

deploy_to_test:
  stage: deploy
  script:
    - yarn
    - rm -rf dist/
    - yarn build
    - ls -l -t ./dist/
    - rsync -avz  ./dist/ root@xxx.xx.xx.xxx:/dist

前面都是基本的前端打包命令。最后一个是利用rsync远程命令去连接到阿里云服务器(xxx.xx.xx.xxx),把打包后的CI产物(dist包),传送到阿里云服务器。

上面的步骤已经实现了CI。但如果是通过Docker来实现CI的话,还需要第四步。

Four:  Mac下Docker的安装及运行

(1)安装Docker命令

brew install --cask docker

(2)拉取Gitlab镜像Image

docker pull drud/gitlab-ce:v0.29.1

(3)创建Container

docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab drud/gitlab-ce:v0.29.1

这行命令是用于在 Docker 容器中运行 GitLab 社区版(Community Edition)的镜像,并将容器的端口映射到主机上的对应端口。下面是对每个选项和参数的解释:

  • docker run: 运行 Docker 容器的命令。
  • -d: 在后台(守护进程)模式下运行容器。
  • -p 8443:443: 将容器的 443 端口映射到主机的 8443 端口。这意味着通过访问主机的 8443 端口,可以访问到 GitLab 容器中的 HTTPS 服务。
  • -p 8090:80: 将容器的 80 端口映射到主机的 8090 端口。这意味着通过访问主机的 8090 端口,可以访问到 GitLab 容器中的 HTTP 服务。
  • -p 8022:22: 将容器的 22 端口映射到主机的 8022 端口。这意味着通过访问主机的 8022 端口,可以访问到 GitLab 容器中的 SSH 服务。
  • --restart always: 在容器退出时自动重新启动容器。这意味着无论是出于故障恢复还是主机重启,都会自动重新启动 GitLab 容器。
  • --name gitlab: 将容器命名为 "gitlab"。这样,在运行其他命令时可以使用容器名称来引用它。
  • drud/gitlab-ce:v0.29.1: 使用 "drud/gitlab-ce" 镜像的 "v0.29.1" 版本作为 GitLab 容器的基础镜像。

总体来说,这条命令会在 Docker 中启动一个名为 "gitlab" 的容器,其中运行了 GitLab 社区版的镜像,并将 HTTPS、HTTP 和 SSH 服务分别映射到主机的 8443、8090 和 8022 端口。容器在退出时会自动重新启动。 

运行成功后,在浏览器上输入http://localhost:8090/ 就能看见GitLab的官网。

 编写yml如下:

variables:
  TEST_NAME: "tips"
  OUT_PORT: "8081"
  IN_PORT: "8081"
stages:
  - deploy

deploy_to_test:
  stage: deploy
  before_script:
    - if [ $(docker ps -aq --filter name=$CI_PROJECT_NAME) ]; then docker rm -f $CI_PROJECT_NAME;fi
  script:
    - docker build -f Dockerfile -t $TEST_NAME:latest .
    - docker run -d -p $OUT_PORT:$IN_PORT  --name $TEST_NAME  $TEST_NAME:latest

在Gitlab上看见CI跑成功,点击Containers界面,会发现新生成了test容器,点击Port那里对应的链接,打开后能访问到项目的页面,即为成功,perfect.

参考文档

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值