Gitlab搭建以及CI/CD

Posted Ray.floyd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gitlab搭建以及CI/CD相关的知识,希望对你有一定的参考价值。

1,gitlab runner安装以及配置

Download and install binary
# Download the binary for your system
sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64

# Give it permissions to execute
sudo chmod +x /usr/local/bin/gitlab-runner

# Create a GitLab CI user
sudo useradd --comment \'GitLab Runner\' --create-home gitlab-runner --shell /bin/bash

# Install and run as service
sudo gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
sudo gitlab-runner start
Command to register runner
sudo gitlab-runner register --url https://gitlab.bdynamics.com.cn/ --registration-token $REGISTRATION_TOKEN

2,指定runner clone仓库的地址 

sudo vi /etc/gitlab-runner/config.toml

指定 clone_url = "http://127.0.0.1/"

3,gitlab 安装以及指定https/http方式运行

 sudo vi /etc/gitlab/gitlab.rb

external_url \'https://gitlab.bdynamics.com.cn\'
##nginx[\'ssl_certificate\'] = "/home/penglei/opt/bdynamics.com.cn.pem"
nginx[\'ssl_certificate\'] = "/home/penglei/opt/Nginx/1_bdynamics.com.cn_bundle.crt"
nginx[\'ssl_certificate_key\'] = "/home/penglei/opt/Nginx/2_bdynamics.com.cn.key"

sudo gitlab-ctl reconfigure

sudo gitlab-ctl restart

 

nginx配置

/var/opt/gitlab/nginx/conf 增加  gitlab-http.conf 内容

  listen *:80;


  server_name gitlab.bdynamics.com.cn;

然后再 /var/opt/gitlab/nginx/conf/nginx.conf中添加

  include /var/opt/gitlab/nginx/conf/gitlab-http.conf;
  include /var/opt/gitlab/nginx/conf/gitlab-https.conf;

sudo gitlab-ctl nginx restart  (此时不要sudo gitlab-ctl reconfigure,reconfigure会重写配置 /var/opt/gitlab/nginx/conf/nginx.conf)

 

4,gtest 与CI/CD

CICD配置文件 .gitlab-ci.yml    (script中命令所在目录就是源码的根目录,源码会由gitlab runner自动拉取,stages 也可以定义多个,这样可以把代码静态检查等加入到CI/CD里

stages:
    - buildtest

buildtest:
    stage: buildtest
    script:
        - rm buildx86 -rf
        - mkdir buildx86
        - cd buildx86
        - cmake ..
        - make -j4
        - make all_test

项目cmake参考,根目录的cmake

cmake_minimum_required (VERSION 2.8)

project (my_app)

enable_testing()
add_custom_target(all_test ${CMAKE_CTEST_COMMAND} -V)
set_property(GLOBAL PROPERTY ROOT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set_property(GLOBAL PROPERTY COMMON_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include)


add_executable(my_app ${DIR_SRCS})

target_link_libraries(my_app 
                pthread
                dl
                m
                )

测试代码对应的cmake

aux_source_directory(. DIR_LIB_SRCS)
## singleton test
add_executable(singleton_test test/singleton_test.cpp)

target_link_libraries(singleton_test
                core_base
                ${GTEST_LIB}
                pthread
                )
add_test(singleton_test singleton_test
        )

测试代码示例singleton_test.cpp:

TEST(singletonTest, create_singleton_test) {
    std::cout << Singleton<TestNoDestroy>::instance().name() << std::endl;;
    std::cout << Singleton<TestDestroy>::instance().name() << std::endl;;
}

 

 

 

 

以上是关于Gitlab搭建以及CI/CD的主要内容,如果未能解决你的问题,请参考以下文章

CI/CD之搭建私有git仓库gitlab

基于docker搭建Jenkins+Gitlab+Harbor+Rancher架构实现CI/CD操作

实践分享!GitLab CI/CD 快速入门

如何搭建自己的CI/CD平台:Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台(持续集成部署Hexo博客Demo)

如何搭建自己的CI/CD平台:Gitlab+Jenkins+Docker+Harbor+K8s集群搭建CICD平台(持续集成部署Hexo博客Demo)

SpringBoot+Git+Jenkins+Docker实现CI/CD