GitLab CI 示例

同repository,多個系統:構建測試,snoar掃描,自動部署

variables:
  SOURCE_PATH: "40_源碼/agxt"
  SOURCE_PATH_XSPCH: "40_源碼/線索排查會"
  SOURCE_PATH_ZJJD: "40_源碼/ZHBA"
  SOURCE_PATH_ZJJDAPI: "40_源碼/api"
  SOURCE_PATH_AJSLA6: "40_源碼/ajslNew"
  SOURCE_PATH_AJSL: "40_源碼/AJSL"
  PACKAGE_NAME: "*.?ar"
  TARGET_IP_DEV_PZ: "172.23.26.78"
  TARGET_USER: "root"
  TARGET_PASSWORD: "jcw6789@jkl"
  TARGET_DIR: "/home/ba/out"
  SCRIPT_DIR: "/home/ba"
  TARGET_SCRIPT: "sh _upgrade.sh"
  SONAR_URL: "http://sonar.thunisoft.com"
  SONAR_LOGIN: "1193ca99634421e6656f2444de264d65ec9988e9"
stages:
  - test
  - deploy
  - check
#所有分支
pz-agxt_job:
  stage: test
  tags:
    - expect
  script:
    - cd ${SOURCE_PATH}
    - mvn --batch-mode clean package -DskipTests

#所有分支
pz-xspch_job:
  stage: test
  tags:
    - expect
  script:
    - cd ${SOURCE_PATH_XSPCH}
    - mvn --batch-mode clean package -DskipTests
    
#所有分支
pz-zjjd_job:
  stage: test
  tags:
    - expect
  script:
    - cd ${SOURCE_PATH_ZJJD}
    - mvn --batch-mode clean package -DskipTests       
    
#所有分支
pz-zjjdApi_job:
  stage: test
  tags:
    - expect
  script:
    - cd ${SOURCE_PATH_ZJJDAPI}
    - mvn --batch-mode clean package -DskipTests        
#所有分支
pz-ajsl_job:
  stage: test
  tags:
    - expect
  script:
    - cd ${SOURCE_PATH_AJSL}
    - mvn --batch-mode clean package -DskipTests    
        
#所有分支
pz-ajslNew_job:
  stage: test
  tags:
    - expect
  script:
    - cd ${SOURCE_PATH_AJSLA6}
    - mvn --batch-mode clean package -DskipTests    
    

#其他的分支
sonarqube_preview_job:
  stage: check
  except:
    - develop
  tags:
    - expect
  script:
    - cd ${SOURCE_PATH}
    - mvn  --batch-mode compile sonar:sonar -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.analysis.mode=preview -Dsonar.gitlab.max_major_issues_gate=0 -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.gitlab.max_major_issues_gate=0 -Dsonar.gitlab.ping_user=true  -Dsonar.gitlab.query_max_retry=100 -Dsonar.gitlab.query_wait=10000
    
    - cd ../../
    - cd ${SOURCE_PATH_XSPCH}
    - mvn --batch-mode compile sonar:sonar -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.analysis.mode=preview -Dsonar.gitlab.max_major_issues_gate=0 -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.gitlab.max_major_issues_gate=0 -Dsonar.gitlab.ping_user=true  -Dsonar.gitlab.query_max_retry=100 -Dsonar.gitlab.query_wait=10000

    - cd ../../
    - cd ${SOURCE_PATH_ZJJDAPI}
    - mvn --batch-mode compile sonar:sonar -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.analysis.mode=preview -Dsonar.gitlab.max_major_issues_gate=0 -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.gitlab.max_major_issues_gate=0 -Dsonar.gitlab.ping_user=true  -Dsonar.gitlab.query_max_retry=100 -Dsonar.gitlab.query_wait=10000

    - cd ../../
    - cd ${SOURCE_PATH_AJSLA6}
    - mvn --batch-mode compile sonar:sonar -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.analysis.mode=preview -Dsonar.gitlab.max_major_issues_gate=0 -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.gitlab.max_major_issues_gate=0 -Dsonar.gitlab.ping_user=true  -Dsonar.gitlab.query_max_retry=100 -Dsonar.gitlab.query_wait=10000
    

#develop分支
sonarqube_report_job:
  stage: check
  tags:
    - expect
  only:
    - develop
  script:
    - cd ${SOURCE_PATH}
    - mvn --batch-mode compile sonar:sonar -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.gitlab.query_max_retry=100 -Dsonar.gitlab.query_wait=10000

    - cd ../../
    - cd ${SOURCE_PATH_XSPCH}
    - mvn --batch-mode compile sonar:sonar -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.gitlab.query_max_retry=100 -Dsonar.gitlab.query_wait=10000

    - cd ../../
    - cd ${SOURCE_PATH_ZJJDAPI}
    - mvn --batch-mode compile sonar:sonar -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.gitlab.query_max_retry=100 -Dsonar.gitlab.query_wait=10000

    - cd ../../
    - cd ${SOURCE_PATH_AJSLA6}
    - mvn --batch-mode compile sonar:sonar -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_LOGIN -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME -Dsonar.gitlab.query_max_retry=100 -Dsonar.gitlab.query_wait=10000


deploy-dev-pz:
  stage: deploy
  tags:
    - expect
  only:
    - develop
  script:
    - cd ${SOURCE_PATH}
    - mvn package -DskipTests

    - cd ../../
    - cd ${SOURCE_PATH_XSPCH}
    - mvn package -DskipTests
    
    - cd ../../
    - cd ${SOURCE_PATH_ZJJD}
    - mvn package -DskipTests
    
    - cd ../../
    - cd ${SOURCE_PATH_ZJJDAPI}
    - mvn package -DskipTests
    
    - cd ../../
    - cd ${SOURCE_PATH_AJSLA6}
    - mvn package -DskipTests
    
    - cd ../../
    - cd ${SOURCE_PATH_AJSL}
    - mvn package -DskipTests

    - echo "=============== 開始部署任務-DEVELOP  ==============="
    # 測試,是否能夠通過 ssh 連通遠程服務器
    - sshpass -p ${TARGET_PASSWORD} ssh -o StrictHostKeychecking=no ${TARGET_USER}@${TARGET_IP_DEV_PZ}
    - echo "=============== 將程序包包部署到遠程服務器上  ==============="
    - sshpass -p ${TARGET_PASSWORD} scp -o StrictHostKeychecking=no ../*/target/${PACKAGE_NAME} ${TARGET_USER}@${TARGET_IP_DEV_PZ}:${TARGET_DIR}
    - echo "=============== 開始執行  ==============="
    - sshpass -p ${TARGET_PASSWORD} ssh -o StrictHostKeychecking=no ${TARGET_USER}@${TARGET_IP_DEV_PZ} "cd ${SCRIPT_DIR} && ${TARGET_SCRIPT}"


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章