第 17 篇 : 创建简单项目&安装gitlab-runner&打包&运行

1. 删除gitlab默认创建的项目,通用->高级->最下面

删除项目

2. 在gitlab上创建一个空白项目

创建空白项目

3. 新建SpringBoot项目(可自行编写)

本地新建项目
依赖选择
项目位置
(可选) 修改SpringBoot版本号
修改SpringBoot版本号

4. 远程gitlab与本地项目关联

4.1 为此项目创建本地git版本控制,默认是master分支

本地git版本控制

4.2 先commit到本地git仓库

先commit到本地git

4.3 找到gitlab的项目地址

gitlab项目地址

4.4 关联gitlab项目地址到本地

关联gitlab地址到本地
输入地址

4.5 push(可能需要输入账号密码)

push

5. 安装gitlab-runner(可另开cmd同步执行第 6 步)

可以看到流水线已经开始执行任务了,但还是阻塞状态,因为还未配置gitlab-runner,先点取消
任务阻塞

5.1 进入runner安装页面

runner安装说明位置
显示安装说明

5.2 可以看到,文档很详细,把所有命令都写好了(需要注意注册最后面token的替换),直接安装->注册,root用户可以把sudo去掉

很详细的安装说明
注册的时候 executor 暂时选用shell,描述自行输入,其他选项直接回车
注册runner

5.3 刷新页面,可以看到绿色的圆点,就说明gitlab-runner可以使用了

注册完成

6. 安装maven

yum install maven
mvn -v

maven版本
创建本地仓库文件夹

cd /home
mkdir javaDevelop
sudo chmod -R 777 javaDevelop/

根据maven的安装位置,去配置setting

vi /usr/share/maven/conf/settings.xml
i

55 行 增加本地仓库地址

<localRepository>/home/javaDevelop</localRepository>

159 行 增加阿里云仓库地址

<mirror>
		<id>aliyun</id>
		<name>Nexus aliyun</name>
		<mirrorOf>*</mirrorOf>
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

218 行 增加JDK1.8配置

<profile>
		<id>jdk-1.8</id>
		<activation>
		<activeByDefault>true</activeByDefault>
		<jdk>1.8</jdk>
		</activation>
		<properties>
		 <maven.compiler.source>1.8</maven.compiler.source>
		 <maven.compiler.target>1.8</maven.compiler.target>
		 <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
		</properties>
</profile>

7. 编辑本地项目(可自行编写)

7.1 修改配置文件为.yml,并添加如下内容

spring:
  profiles:
    active: dev
  application:
    name: cool

server:
  port: 6676
  servlet:
    context-path: /cool

7.2 新建application-dev.yml和application-prd.yml

branch: dev
branch: prd

7.3 新建test包,CoolController类

package com.application.cool.test;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @description: 测试
 * @author: 哼唧兽
 * @date: 9999/9/21
 **/
@RestController
public class CoolController {

    @Value("${branch}")
    private String branch;

    @GetMapping
    public String cool() {
        return "cool";
    }

    @GetMapping("/branch")
    public String branch() {
        return branch;
    }
}

7.4 在master分支新建dev,commit&push

7.5 在dev分支新建prd,修改application.yml,commit&push

spring:
  profiles:
    active: prd
  application:
    name: cool

server:
  port: 6676
  servlet:
    context-path: /cool

8. 为prd配置流水线

.gitlab-ci.yml文件是gitlab-runner核心文件,此文件是基于 executor 来编写的,因为我安装时指定的是shell,所以需要在机器上安装maven;如果选择docker,就需要指定一个docker镜像来运行此文件的命令(待开发…).目前来说,能够打包已能满足要求,至于版本控制暂不涉及
针对测试环境,可以在CI/CD->计划中,指定时间打包某一分支
配置流水线

stages:
  - build

# 构建 Job
build-job:
  stage: build
  only:
    - prd
  script:
    - echo "=============== 开始打包任务  ==============="
    - java -version
    - mvn -version
    - mvn clean
    - mvn compile
    - echo "=============== 开始打包任务  ==============="
    - mvn package -Dmaven.test.skip=true
    - echo "=============== 关 闭 进 程   ==============="
    - pwd
    - whoami

cache:
  key: maven-cache
  paths:
    - /home/javaDevelop

上述命令具体解释请见官网,说2个关键的
cache : 可以不用每次打包的时候都去网上拉取,后续打包就会像本地一样快
only : 只要prd分支push后,gitlab-runner就会自动开始打包

9. 查看Build日志&查看jar包

可以看到最终打包的位置以及负责打包的用户是gitlab-runner
打包位置
最终生成的jar文件名称是可以通过pom定义的,可自行搜索文档解决

cd /home/gitlab-runner/builds/DTsmH1Up/0/gitlab/gitlab-instance-4d624447/cool/target/
ll

target

10. 运行jar文件

新开一个cmd,后台运行jar文件

cd ~
mkdir cool
cd cool
cp /home/gitlab-runner/builds/DTsmH1Up/0/gitlab/gitlab-instance-4d624447/cool/target/cool-1.0-SNAPSHOT.jar ./
nohup java -jar cool-1.0-SNAPSHOT.jar >cool.log 2>&1 &

为6676端口关闭防火墙

firewall-cmd --query-port=6676/tcp
firewall-cmd --zone=public --add-port=6676/tcp --permanent
firewall-cmd --reload

访问获取 cool
访问获取 prd

ps -ef | grep cool-1.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}' | xargs kill -9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈哈兽0026

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值