【Gitlab】CICD流水线自动化部署教程

第一步,准备 GitLab 仓库

这个不用多说,得先保证你的项目已经托管在一个 GitLab 仓库中。


第二步,定义 `.gitlab-ci.yml` 文件

在你的项目根目录中创建一个 `.gitlab-ci.yml` 文件。这个文件将定义所有 CI/CD 的工作流程,包括构建、测试和部署等步骤

例:


第三步,编写构建脚本

这一步的内容根据自己实际需求来写,可以参考以下配置

variables:NODE_OPTIONS: "--max-old-space-size=4096"  #这个地方为什么写这个,是因为我部署的服务器分配的内存太少了而报错,所以这里根据你们实际需要
# 定义流水线阶段
stages:- build# 配置缓存节点模块提升性能
cache:paths:- node_modules/# 构建作业
build_job:stage: buildimage: node:latestscript:- echo "Starting build process" # 断点: 开始构建过程- npm install- npm run build-only # 请根据你的情况视情况更改为正确的构建命令,就是你本地里面的打包命令- echo "Starting deployment"- echo "Current working directory is:"- pwd- cp -r dist/* /var/www/chatcs/  # 根据你自己的目录,这是要存放到的目录artifacts: # 存档构建结果,用于后续步骤paths:- dist/only:- main # 只有 main分支的提交会触发构建-根据你的需要tags:- chatcs # 假设标签是 chatcs ,这个也要根据你的需要

第四步,在你要部署的服务器上,安装GitLab Runner

特别提醒一句,以下的配置均在服务器中,这个服务器一定先把该安装的依赖安装好,比如你是前端,先把node下载安装好。

4.1 安装地址: GitLab Runner 官方文档

安装 GitLab Runner 可以通过以下步骤进行:1. 首先你需要连接到你的 Linux 服务器,在服务器上打开终端。2. 在终端中,使用管理员权限(比如 sudo)执行以下命令来安装 GitLab Runner:- Debian/Ubuntu 系统:// 安装依赖sudo apt-get updatesudo apt-get install -y curl wget gnupg2// 安装 GitLab Runnercurl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bashsudo apt-get install gitlab-runner- CentOS/RHEL 系统://安装依赖sudo yum install curl policycoreutils-python openssh-server//安装 GitLab Runnercurl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bashsudo yum install -y gitlab-runner

4.2 注册 GitLab Runner

注册命令: gitlab-runner register

这一步容易出问题,最容易出问题的是选择执行方式.你可以在配置文件 `config.toml` 中设置 Runner 的执行方式,例如使用 Docker、Shell 、ssh等,以确保 Runner 能够正确地执行你的 CI/CD 任务。

简单快捷的方式是: shell

在注册过程中,系统将提示你输入 GitLab 的 URL、项目的注册令牌等信息。你可以在项目的 `Settings` --> `CI/CD` --> `Runner` 部分找到所需的注册令牌。

4.3 确保 Runner 处于活跃状态

确保你注册的 Runner 是活跃的,并且配置正确。在 GitLab Runner 的配置文件(通常位于 `/etc/gitlab-runner/config.toml`)中,确认 Runner 的配置,比如它应该指向正确的 GitLab 实例,且 Runner 标签符合项目的 `.gitlab-ci.yml` 文件中定义的要求。

4.4 启动 Runner  

你可以使用以下命令启动它:

gitlab-runner start

确认 Runner 正在运行后,回到 GitLab 项目的 CI/CD 设置中的 Runners 部分。等待几秒钟,你应该能够看到 Runner 的状态变为绿色,这意味着它已准备好接收工作。


 5.验证可行性

至此,配置完成,你可以在本地git push后查看部署的网址是不是最新的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/577282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++中的内存锁定

内存锁定(memory locking)是确保进程保留在主内存中并且免于分页的一种方法。在实时环境中,系统必须能够保证将进程锁定在内存中,以减少数据访问、指令获取、进程之间的缓冲区传递等的延迟。锁定内存中进程的地址空间有助于确保应用程序的响应时间满足实…

OCP NVME SSD规范解读-1

OCP(Open Compute Project)是一个由Facebook于2011年发起的开源项目。其目标是重新设计和优化数据中心的硬件,包括服务器、存储、网络设备等,以提高效率,降低运营成本,并推动技术的创新和标准化。 在OCP中&…

C++ Qt开发:Charts绘制各类图表详解

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍TreeWidget与QCharts的常用方法及灵活运用。 …

部署谷歌的Gemini大模型

前言 本文将介绍如何使用Docker、Docker-Compose私有化部署谷歌的Gemini大模型,以及没有服务器的情况下如何使用Vercel来部署。 Demo: 使用新加坡云服务器部署:Gemini Pro Chat (snowice.eu.org) 使用Vercel部署:Gemini Pro Chat (snowice.eu…

[足式机器人]Part2 Dr. CAN学习笔记-自动控制原理Ch1-5比例积分控制器Proportional-Intefral Controller

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记-自动控制原理Ch1-5比例积分控制器Proportional-Intefral Controller 消除稳态误差——设计新的控制器

AspectJ入门(一)

AspectJ是一个面向切面的框架,扩展了Java语言。有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。Spring的AOP底层也是用了这个框架。 AOP可以拦截指定的方法并对方法增强,而且无需侵入到业务代码中,使业务与非业务处理逻辑分离…

机器学习之实验过程01

import pandas as pd import numpy as np import matplotlib.pyplot as plt data_path /home/py/Work/labs/data/SD.csv # 请确保您的数据文件路径是正确的 df pd.read_csv(data_path) df.head() # 创建散点图 # 创建散点图 plt.figure(figsize(10, 6)) plt.scatter…

MySQL 数据库系列课程 05:MySQL命令行工具的配置

一、Windows启动命令行工具 (1)打开 Windows 的开始菜单,找到安装好的 MySQL,点击MySQL 8.0 Command Line Client - Unicode,这个带有 Unicode 的,是支持中文的,允许在命令行中敲中文。 &…

三网合一建设方案

一、什么是三网融合? 三网合一(即三网融合),是指电信网、广播电视网和互联网的相互渗透、互相兼容、并逐步整合成为统一的信息通信网络,其中互联网是核心。只需要引入三个网络中的一个,就能实现电视、互联…

Java架构师系统架构需求分析实战

目录 1 导语2 需求分析实战3 核心方法论-架构立方体4 功能性模型-模块定义5 功能性模型-模块关系图6 功能性模型-模块细化 想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导语 架构设计的实战和思维方法的讨论,主要聚焦于需求分析的重要性和方…

openGauss学习笔记-172 openGauss 数据库运维-备份与恢复-导入数据-分析表172.1 分析表172.2 表自动分析

文章目录 openGauss学习笔记-172 openGauss 数据库运维-备份与恢复-导入数据-分析表172.1 分析表172.2 表自动分析 openGauss学习笔记-172 openGauss 数据库运维-备份与恢复-导入数据-分析表 执行计划生成器需要使用表的统计信息,以生成最有效的查询执行计划&#…

c# OpenCvSharp 检测(斑点检测、边缘检测、轮廓检测)(五)

在C#中使用OpenCV进行图像处理时,可以使用不同的算法和函数来实现斑点检测、边缘检测和轮廓检测。 斑点检测边缘检测轮廓检测 一、斑点检测(Blob) 斑点检测是指在图像中找到明亮或暗的小区域(通常表示为斑点)&#…

电子科大软件系统架构设计——设计模式

设计模式概述 设计模式的背景 设计面向对象软件比较困难,而设计可以复用的面向对象软件更加困难不是解决任何问题都需要从头做起,最好能复用以往的设计方案经验面向对象软件设计经验需要有一定的模式记录下来,以提供给其他设计者使用&#…

搭建Nginx文件下载站点

一、下载Nginx 首先,确保你的服务器上已经安装了Nginx,使用编译安装,下载最新版Nginx。 wget https://nginx.org/download/nginx-1.25.3.tar.gz tar -xf nginx-1.25.3.tar.gz二、安装Fancyindex和Nginx-Fancyindex-Theme模块 # 下载Fancyin…

如何使用 YOLOv8 做对象检测

介绍 对象检测是一项计算机视觉任务,涉及识别和定位图像或视频中的对象。它是许多应用的重要组成部分,例如自动驾驶汽车、机器人和视频监控。 多年来,已经开发了许多方法和算法来查找图像中的对象及其位置。卷积神经网络对于此类任务有着非…

uni-app 工程目录结构介绍

锋哥原创的uni-app视频教程: 2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版),火爆更新中...共计23条视频,包括:第1讲 uni…

[kubernetes]控制平面ETCD

什么是ETCD CoreOS基于Raft开发的分布式key-value存储,可用于服务发现、共享配置以及一致性保障(如数据库选主、分布式锁等)etcd像是专门为集群环境的服务发现和注册而设计,它提供了数据TTL失效、数据改变监视、多值、目录监听、…

MyBatis:Generator

MyBatis Generator附批量操作分页查询存储过程 Generator 介绍网址:Introduction to MyBatis Generator Generator ,一个用于 MyBatis 的代码生成工具,可以根据数据库表结构自动生成对应的实体类、DAO 接口和 SQL 映射文件,提高…

智能优化算法应用:基于协作搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于协作搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于协作搜索算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.协作搜索算法4.实验参数设定5.算法结果6.…

自媒体实战篇:剪辑软件应用与实操

剪辑软件应用与实操 剪映基础界面认识 素材面板 导入本地素材,剪映自带素材库,音频,文本等素材合集面板播放预览 预览本地素材,,剪映自带素材库以及时间线面板中的素材的实时效果时间线面板 对素材进行基础的编辑操作,调整素材轨道等素材功能面板 可对素材或者文本等精细…