1. 程式人生 > >Gitlab CI整合Gitlab Runner

Gitlab CI整合Gitlab Runner

關於Gitlab CI與Gitlab Runner的概念自行百度,此處不做贅述;Gitlab8.0之後已經集成了Gitlab CI;整合環境:CentOS6.5+Gitlab8.2.3-4+Gitlab Runner1.10.7-1

1、新增GitLab官方庫

curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash

2、安裝Gitlab Runner(若安裝其他版本,請參考官方文件

yum install gitlab-ci
-multi-runner-1.10.7-1

3、註冊Gitlab Runner(Gitlab CI的url和token請從自己的gitlab裡面的專案裡的runners模組裡面檢視)

[root@localhost ~]# gitlab-ci-multi-runner register
Running in system-mode.                            

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.4.241:81/ci
Please enter the gitlab-ci token for
this runner: c5552857cfa2bd91c7b69507c8aec5 Please enter the gitlab-ci description for this runner: [localhost.localdomain]: my-runner Please enter the gitlab-ci tags for this runner (comma separated): my-tag Whether to run untagged builds [true/false]: [false]: true Registering runner... succeeded runner=c5552857 Please enter the executor
: parallels, shell, virtualbox, docker+machine, docker-ssh+machine, docker, docker-ssh, ssh, kubernetes: shell Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded! [[email protected] ~]#

4、啟動Gitlab Runner

gitlab-ci-multi-runner run

此時可以在你們專案裡看到剛剛新增的runner

這裡寫圖片描述

5、在專案根目錄新增.gitlab-ci.yml檔案,Gitlab Runner執行全靠它(具體配置參考官方文件

# Define commands that run before each job's script
before_script:
  - mvn clean

# Define build stages
stages:
  - deploy_test
  #- deploy_stage

# Define job
deploy_test_job:
  stage: deploy_test
  only:
      - develop
  script:
    # You can also list all environment variables with the export command
    #- export
    - mvn install -Ptest -DskipTests
    - sh /data/apps/tomcat-instance/deploy_test.sh

deploy_test.sh

#!/bin/sh
export JAVA_HOME=/data/apps/jdk1.8.0_111
export JRE_HOME=/data/apps/jdk1.8.0_111/jre
export CATALINA_HOME=/data/apps/tomcat-8.5.8
export CATALINA_BASE=/data/apps/tomcat-instance/jgj-api
war=/data/target/*.war
bin=$(cd `dirname $0`; pwd)
echo "Deploy ${war##*/}..."
rm -rf ${bin}/jgj-api/webapps/*
rm -rf ${bin}/jgj-api/logs/*
cp ${war} ${bin}/jgj-api/webapps/
echo "Restart tomcat.."
pid=$(lsof -t -i:8098)
if [ ! $pid ]; then
  echo "jgj-api pid not exist"
else
  echo "jgj-api pid is ${pid}"
  kill -9 $pid
fi
sleep 1

如果要部署其他環境可以通過ssh無密碼登入實現參考文件

這裡有一個弱點,至今沒找到解決辦法,就是在deploy_test.sh指令碼最後直接啟動tomcat,啟動不起來,應該是跟jenkins一樣,jenkins執行完job後會殺死其他程序,只不過jenkins有解決辦法,Gitlab Runner沒找到,各位大俠如果有辦法,歡迎留言!

更多配置請參考官方文件

相關推薦

Gitlab CI整合Gitlab Runner

關於Gitlab CI與Gitlab Runner的概念自行百度,此處不做贅述;Gitlab8.0之後已經集成了Gitlab CI;整合環境:CentOS6.5+Gitlab8.2.3-4+Gitlab Runner1.10.7-1 1、新增GitLab官

gitlabgitlab-cigitlab-runner<一>

h+ mac str centos7 coord interval b- 地址 style 一、概述 gitlab是開源代碼托管軟件,有ce和ee兩種版本,一般情況下ce完全能滿足企業使用,如果不差錢可以使用ee版本,這裏使用的是ce版。之前也一直在做CI/CD,最開始采用

GitLab持續整合--配置Runner

GitLab持續整合 Getting started with GitLab CI/CD 從8.0開始,GitLab持續整合(CI)完全整合在GitLab中。 GitLab的持續整合服務。 如果你添加了.gitlab-ci.yml檔案在專案的根目

Gitlab CI 整合 Kubernetes 叢集部署 Spring Boot 專案

在上一篇部落格中,我們成功將 Gitlab CI 部署到了 Docker 中去,成功建立了 Gitlab CI Pipline 來執行 CI/CD 任務。那麼這篇文章我們更進一步,將它整合到 K8s 叢集中去。這個才是我們最終的目標。眾所周知,k8s 是目前最火的容器編排專案,很多公司都使用它來構建和管理自己

.gitlab-ci.yml Gitlab CI 簡單配置

Gitlab 最近離職,一張機票跨越小半個中國,來魔都找了一份喜歡的工作。穩定了就開始繼續寫東西啦 ?‍ 畢業實習的時候在公司裡面積極推 Git,考慮到同事的學習成本,在 Gogs 和 Gitlab 之間,我選了 Gogs,不為別的,只為原生中文 ?。然後一大段時

Gitlabgitlab-CI 持續整合以及runner的配置簡版

在我們完成專案開發後,提交到git,當監聽提交後,自動進行編譯,並進行專案的部署,是不是一想就很爽,所以下面引入我們 > 的主角 —— gitlab-CI,中文文件。 Gitlab CI Gitlab-CI 是 GitLab Continuous Integration(Gitlab持

Gitlab CI Multi Runner搭建CI持續整合環境

GitLab不僅僅只是程式碼託管的工具,它還集成了CI的功能,通過Gitlab CI Multi Runner工具可以更方便的搭建持續整合環境。 在安裝好GitLab之後還需要再安裝一個叫gitlab-ci-multi-runner的工具。 PS: 當然了肯

gitlab-ci-runner安裝

能夠 uber linux scrip -name 下載 你在 啟動服務 direct 前言 什麽是CI/CD? CI (Continuous Integration) 持續集成, CD (Continuous Delivery) 持續部署 個人理解 本地開發代碼, 提交

前端專案基於GitLab-CI的持續整合/持續部署(CI/CD)

什麼是持續整合/持續部署(CI/CD)? 個人理解,說白了就是把程式碼測試、打包、釋出等工作交給一些工具來自動完成。這樣可以提高效率,減少失誤,開發人員只需要關心開發和提交程式碼到git就可以了。 怎麼做? 方式一: 使用web hooks,這種方式的原理就是在gitlab專案的Setting-

『中級篇』docker之CI/CD持續整合-gitlab安裝(70)

建立虛擬機器 vagrant檔案的配置 # -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.require_version ">= 1.6.

Android 專案配置 gitlab-ci 持續整合

一、專案根目錄下建立一個 .gitlab-ci.yml 檔案 然後在 .gitlab-ci.yml 中配置持續整合的指令碼: 指令碼配置詳細可以看:   Configuration of your jobs with .gitlab-ci.yml Setting up GitLab

Gitlab+Gitlab-CI+Docker實現持續整合(CI)與持續部署(CD)

寫在前面 記錄一下,一個自動化開發部署專案的構建過程與簡單使用,實現真正的DevOps gitlab安裝 步驟一:安裝依賴 yum -y install git gcc glibc-static telnet yum -y install curl poli

GitLab CI持續整合配置方案

持續整合是一種軟體開發實踐,即團隊開發成員經常整合它們的工作,通過每個成員每天至少整合一次,也就意味著每天可能會發生多次整合。每次整合都通過自動化的構建(包括編譯,釋出,自動化測試)來驗證,從而儘早地發現整合錯誤。 關於持續整合,很不錯的文章:

Gitlab-CI 初級篇 - Gitlab Runner

Gitlab Runner 在專案根目錄下新增 .gitlab-ci.yml 檔案,整個持續整合系統是 Gitlab 自帶的,要做的就是新增一個 Runner 到系統裡來解析檔案中的 script 部分。 安裝 Gitlab Runner 官方提供了安裝方法,個人選擇的是 install on macO

GitLab持續整合持續部署(CI&CD)

GitLab CI/CD介紹 首先使用一張圖說明GitLab CI的工作流程: GitLab CI是 GitLab 提供的持續整合服務,只要在你的倉庫根目錄 建立一個.gitlab-ci.yml 檔案, 併為該專案指派一個Runner,當有合併請求

持續整合環境選擇:Jenkins VS gitlab-ci

Jenkins Jenkins作為老牌的持續整合框架,在這麼多年的發展中,積累很多優秀的plugin工具,對進行持續整合工作帶來很大的便利。 gitlab-ci gitlab-ci作為gitlab提供的一個持續整合的套件,完美和gitlab進行整合,git

Docker搭建自己的Gitlab CI Runner

目錄: Gitlab CI介紹 環境、軟體準備 安裝、註冊並啟動Gitlab Runner 定義專案構建流程 FAQ 1、Gitlab CI介紹 CI:持續整合,我們通常使用CI來做一些自動化工作,比如程式的打包,單元測試,部署等,這種構建方式

持續整合 Gitlab-CI 【Maven】【部署至伺服器】

持續整合 Gitlab-CI 概念定義 原則 業界普遍認同的持續整合的原則包括: 需要版本控制軟體保障團隊成員提交的程式碼不會導致整合失敗。常用的版本控制軟體有 git、svn 等; 開發人員必須及時向版本控制庫中提交程式碼,也必須經常性地從版

Kubernetes 叢集中執行 GitLab-Runner 來執行 GitLab-CI

目錄 1、GitLabCI & Runner 介紹 GitLab-CI 是一套 GitLab 提供給使用者使用的持續整合系統,GitLab 8.0 版本以後是預設整合並且預設啟用。GitLab-Runner 是配合 GitLab-CI

GitLab-CI持續整合CI)的介紹與執行機制

 GitLab持續整合(CI)的介紹與執行機制 GitLab-CI GitLab-CI就是一套配合GitLab使用的持續整合系統(當然,還有其它的持續整合系統,同樣可以配合GitLab使用,比如Jenkins)。而且GitLab8.0以後的版本是預設集成了GitLab-C