第 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
### 安装和配置 GitLab Runner #### 1. 安装 GitLab Runner 为了在 CentOS 7 上安装 GitLab Runner,可以通过官方 Yum 源完成安装过程。以下是具体的操作: 通过命令获取并添加 GitLab Runner 的 Yum 源: ```bash curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-ci-multi-runner/script.rpm.sh | sudo bash ``` 接着,使用 `yum` 命令来安装 GitLab Runner: ```bash sudo yum install gitlab-ci-multi-runner ``` 这一步会将 GitLab Runner 成功安装至系统中[^2]。 --- #### 2. 注册 GitLab Runner 注册 GitLab Runner 是将其关联到特定的 GitLab 项目的关键步骤。进入目标项目的 **Settings -&gt; CI/CD** 页面,在 Runners 部分找到 URL 和 Token。 执行以下命令以启动注册流程: ```bash sudo gitlab-runner register ``` 按照提示输入必要的参数,例如项目的 URL、Token、描述以及标签等。对于构建工具的选择,推荐指定 Docker 或 Shell Executor 来支持 Maven 构建环境[^3]。 --- #### 3. 创建 `.gitlab-ci.yml` 文件 `.gitlab-ci.yml` 是定义 CI/CD 流程的核心文件。下面是一个适用于 Maven 项目简单示例: ```yaml stages: - build - test - deploy variables: MAVEN_OPTS: &quot;-Dmaven.repo.local=.m2/repository&quot; cache: paths: - .m2/repository/ build_job: stage: build script: - mvn clean package -DskipTests=true artifacts: paths: - target/*.jar test_job: stage: test script: - mvn test deploy_job: stage: deploy script: - echo &quot;Deploying application...&quot; - scp target/app.jar user@remote-server:/path/to/deploy/ ``` 上述 YAML 文件分为三个阶段:`build`(编译)、`test`(测试)和 `deploy`(部署)。其中,`mvn clean package` 负责生成可执行 JAR 文件;而 `scp` 则用于远程服务器上的应用部署[^4]。 注意:如果需要更复杂的依赖管理或者额外软件的支持,则可能需要自定义 Docker 镜像作为 Runner运行环境。 --- #### 4. 修改 Runner 用户权限 默认情况下,GitLab Runner 使用的是低权限账户运行任务。然而某些操作(如访问受限目录或修改系统设置),可能需要更高的权限级别。因此可以考虑切换为 root 用户运行 Runner: 先确认当前用户的实际状态: ```bash ps aux | grep gitlab-runner ``` 卸载现有服务实例后再重新安装,并显式指明工作路径与用户身份: ```bash sudo gitlab-runner uninstall sudo gitlab-runner install --working-directory /home/gitlab-runner --user root sudo gitlab-runner restart ``` 这样能够确保后续脚本顺利执行而不受权限不足的影响。 --- #### 5. 推送配置文件至仓库 最后记得把新创建好的 `.gitlab-ci.yml` 提交回远端代码库以便触发流水线作业: ```bash git add .gitlab-ci.yml git commit -m &quot;Add GitLab CI/CD pipeline definition&quot; git push origin main ``` 一旦推送成功,应该可以在 GitLab Web UI 中观察到对应的 Pipeline 开始运转起来。 --- ### 总结 综上所述,整个过程中涵盖了从基础组件安装直到高级功能定制等多个方面的工作内容。合理利用这些资源可以帮助团队快速建立起一套稳定可靠的持续交付体系结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

哈哈兽0026

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

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

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

打赏作者

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

抵扣说明:

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

余额充值