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 地址
  • 相关阅读:
    Java for LeetCode 229 Majority Element II
    Java for LeetCode 228 Summary Ranges
    Java for LeetCode 227 Basic Calculator II
    Java for LintCode 颜色分类
    Java for LintCode 链表插入排序
    Java for LintCode 颠倒整数
    Java for LintCode 验证二叉查找树
    Java for LeetCode 226 Invert Binary Tree
    Java for LeetCode 225 Implement Stack using Queues
    Java for LeetCode 224 Basic Calculator
  • 原文地址:https://www.cnblogs.com/zhenhui/p/14361971.html
Copyright © 2011-2022 走看看