zoukankan      html  css  js  c++  java
  • gitlab CICD

    1. 安装gitlab-runner 这里不再介绍  这里选择docker 模式

    2. 使用gitlab ci 工具 cicd 代码流程

      代码检查--> docker build   -->   更新harbor 服务器   -->   同步到kubernetes --> 发送邮件通知

     

    3.在项目的主目录创建.gitlab-ci.yml 文件

    stages:
      - scanner
      - sendmail
      - build
      - update_img
      - sync_img
      - deploy
      - check_pod
      - send_mail
    variables:     
      namespace: "test"
      deployment_name: "platform-api"
      project: "harbor.test.com/cicd/platform-api"
      release: "latest"
      harbor: "http://harbor.test.com"
      DOCKER_HARBOR_USER: "admin"
      DOCKER_HARBOR_PASSWD: "Harboreeee12345"
      BASE_IMAGE: "harbor.test.com/lks/cicd/initbase:v1"
      DOCKER_PUSH_IMAGE: "harbor.test.com/lks/cicd/dockerpush:git"
      KUBECTL_TOOL: "harbor.test.com/devel-tool/kubectl_tool:latest"
      mail_list: "test@com"
    include:
      - local: '.gitlab/check/SonarqubeCheck.yml'
      - local: '.gitlab/docker/DefaultDockerBuild.yml'
      - local: '.gitlab/docker/PushImage.yml'
      - local: '.gitlab/Kubernetes/SyncImage.yml'
      - local: '.gitlab/Kubernetes/CheckPod.yml'
      - local: '.gitlab/check/SendMail.yml'

    4. 功能部署使用include 方式加载本地yml文件 。

    1)代码检查 .gitlab/check/SonarqubeCheck.yml

    image: harbor.test.com/ci/ubuntu-sonarqube-nodejs-scanner:v4       
    example-master-sonar:
      stage: scanner
      only:
        - master
        - merge_requests
      tags:
        - sonar-docker
      script:
        - sonar-scanner-4.4.0 -Dsonar.projectName=$CI_PROJECT_NAME -Dsonar.projectKey=$CI_PROJECT_NAME -Dsonar.branch.name=${CI_COMMIT_REF_NAME} -Dsonar.host.url=http://isonar.test.com -Dsonar.sourceEncoding=UTF-8
    
    example-develop-sonar:
      stage: scanner
      only:
        - develop
      tags:
        - sonar-docker
      script:
        - sonar-scanner-4.4.0 -Dsonar.projectName=$CI_PROJECT_NAME -Dsonar.projectKey=$CI_PROJECT_NAME -Dsonar.branch.name=${CI_COMMIT_REF_NAME} -Dsonar.language=nodejs -Dsonar.host.url=http://isonar.test.com
    
    example-feature-sonar:
      stage: scanner
      only:
        - /^feature-.*$/
      tags:
        - sonar-docker
      script:
        - sonar-scanner-4.4.0 -Dsonar.projectName=$CI_PROJECT_NAME -Dsonar.projectKey=$CI_PROJECT_NAME -Dsonar.branch.name=${CI_COMMIT_REF_NAME} -Dsonar.host.url=http://isonar.test.com -Dsonar.sourceEncoding=UTF-8

    2)打包docker build  images          .gitlab/docker/DefaultDockerBuild.yml

    docker-build:
      image: $BASE_IMAGE
      stage: build
      tags:
        - kube-runner
      script:
        - echo "$project:$CI_COMMIT_SHORT_SHA $CI_JOB_ID"
        - docker build -t $project:$CI_COMMIT_SHORT_SHA --no-cache .
        - docker tag $project:$CI_COMMIT_SHORT_SHA $project:$release
      retry: 2
      rules:
        - exists:
            - Dockerfile

    3)  上传到harbor  中  .gitlab/docker/PushImage.yml

    docker-build:
      image: $BASE_IMAGE
      stage: build
      tags:
        - 10.121.116.100
      script:
        - echo "$project:$CI_COMMIT_SHORT_SHA $CI_JOB_ID"
        - docker build -t $project:$CI_COMMIT_SHORT_SHA --no-cache .
        - docker tag $project:$CI_COMMIT_SHORT_SHA $project:$release
      retry: 2
      rules:
        - exists:
            - Dockerfile

    4) 同步kubernetes deployment 中

    deploy_dev:
      image: $KUBECTL_TOOL
      stage: sync_img
      script:
        - kubectl set image deployment $deployment_name *=$project:$CI_COMMIT_SHORT_SHA -n $namespace --kubeconfig=.gitlab/kube_env/10.121.12.120/admin.conf
      tags:
        - k8s-runner1
      only:
        - master
        - merge_requests

    gitlab 内置变量

    $CI_COMMIT_SHORT_SHA      commit_id_hash

    $CI_JOB_ID          job id
     $CI_PROJECT_URL               项目的url 
      
        $GITLAB_USER_EMAIL         提交者的mail 地址
  • 相关阅读:
    树状数组与线段树基础
    阿里云服务器低价购买及域名解析
    ENVI5.3安装教程(含软件下载)
    05 ArcGIS JS API 4.12版本监听view-change事件
    jQuery的AJAX请求成功,但是跳转到error的解决方法
    04 ArcGIS JS API 4.12加载天地图
    02 Portal for ArcGIS 10.7安装部署教程(linux环境)
    10 webpack4.0学习笔记——热替换_devServer
    09 webpack4.0学习笔记——配置文件_HtmlWebpackPlugin使用
    08 webpack4.0学习笔记——配置文件_DefinePlugin使用
  • 原文地址:https://www.cnblogs.com/zhenhui/p/14361971.html
Copyright © 2011-2022 走看看