使用GitHub Actions 来进行项目远程服务器部署

news2024/11/28 6:52:58

由于项目源码是托管在github的,而部署是放在远程服务器上,并且使用nginx部署。
现在的部署流程时,需要更新时,在本地切换到master分支,执行构建操作,拿到构建出的dist目录,将其上传到远程服务的某个nginx目录,重启nginx服务。 基于以上,使用GitHub Actions做CI/CD流程。

推送代码到master分支,或者master分别合并了pr时,执行流水线.
流水线文件存放在 .github/workflows/deploy.yml
基于node16.x版本,全局安装pnpm,并安装项目依赖,并进行构建。
构建完成后,使用Actions ssh-scp-ssh-pipelines https://github.com/marketplace/actions/ssh-scp-ssh-pipelines

使用该插需要配置三个密钥
DC_HOST:远程主机ip
DC_PASS:密码
DC_USER:用户名

在这里插入图片描述

在这里插入图片描述

# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs

name: ssh deploy 

on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v3
    - name: Use Node.js Build
      uses: actions/setup-node@v3
      with:
        node-version: 16.16.0
        cache: 'npm'
    - run: npm i -g pnpm
    - run: pnpm install
    - run: pnpm run build
    - run: ls -l
    - name: scp ssh pipelines
      uses: cross-the-world/ssh-scp-ssh-pipelines@latest
      env:
        LASTSSH: "Doing something after copying"
      with:
        host: ${{ secrets.DC_HOST }}
        user: ${{ secrets.DC_USER }}
        pass: ${{ secrets.DC_PASS }}
        scp: |
          ./dist/* => /usr/share/nginx/visual-editor/dist
        last_ssh: |
          echo $LASTSSH 
          nginx -t
          nginx -s reload

需要做的事,配置三个密钥,检查路径和重启指令。调试。

运行完成示意图
在这里插入图片描述

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

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

相关文章

从GitLab拉取并运行项目

从GitLab拉取并运行项目 序Git项目运行运行报错 总结教训 序 搭建好前端基础环境后,开始尝试从单位项目组拉取项目尝试本地运行。 Git Git相关配置:一篇学会Git版本管理 先申请Git账号,随后由上级分配权限拉入该项目组。 通过git clone ……

年终奖大幅缩水,是去还是留?

一、年终奖的历史和意义 互联网行业是中国经济发展的一个重要支柱,这也使得互联网公司的年终奖一直是许多从业者最为关注的话题之一。随着行业的不断发展,互联网公司的年终奖也在不断提高,逐渐成为了企业吸引和留住人才的重要手段。在互联网…

基于archlinux的mabox-linux桌面系统,内存资源消耗只有278M!

今天安装了基于archlinux的mabox-linux桌面系统,内存资源消耗只有278M!实在是惊到我了。先上图,改天有空再深入体验一下。 安装后发现没有1920X1080这个分辨率,设置的命令如下: 一,xrandr #查看本机支持的…

短期面试突击攻略大全!2023最全Java面试题目合集

这两年的面试难度确实要比往年高处很多。很多小伙伴投递了上千份简历,只有几家公司约面试。排除个人简历的因素,这在往年都是不太常见的。 大厂缩招,于是很多往年能进大厂的人只能去卷中小厂,搞得层层内卷。 比如往年能有一万个人…

旅游卡分销小程序开发

旅游业的不断发展,旅游卡分销小程序成为了越来越多旅游公司的选择。旅游卡分销小程序是一种在线分销平台,它允许游客购买旅游卡并分销给其他人,从而获得佣金。本文将探讨旅游卡分销小程序的开发。 一、确定旅游卡分销小程序的需求 在…

低代码平台能友好的融入到toB项目中吗?

低代码平台通常可以友好地融入现有toB的交付项目中。虽然低代码平台和传统的高代码开发具有不同的开发方式和工具集,但它们可以在同一个项目中协同工作,互相补充,那么实现能配置的尽可能配置化,配置不出来的就手写。 对于普通IT项…

.Hex文件直接解析的实现_PIC芯片

1.问题 bootloader写成后,需要处理传送过来的.Hex,或者等价的文件的烧录。MicroChip官方并未给出一个.Hex转为.Bin的处理策略。在它的Bootloader代码中,我们可以大致看到它的实现机制,它定义了一组命令。上位机在处理升级时&#…

基于FreeRTOS的嵌入式设备管理关键技术研究及实现(学习六重要)

差分升级算法研究及改进 文件差分算法通过对不同文件的片段进行对比查找差异,将差异描述输出为差分文件。 差分算法是差分升级的关键技术,因此,差分算法的性能决定着整个升级系统的性能。 差分算法研究 差分更新又称为增量编码&#xff0…

yarn介绍与说明

1.介绍 说明:Yarn 是一个由 Facebook、Google、Exponent 和 Tilde 公司联合推出的新一代 JavaScript 包管理工具,用于取代 npm。与 npm 相比,Yarn 可以更快地下载依赖,更好地管理依赖版本,更稳定地构建依赖关系。 2.…

AWVS扫描工具使用教程

AWVS是一款Web漏洞扫描工具,通过网络爬虫测试网站安全,检测流行的Web应用攻击,如跨站脚本、sql 注入等。据统计,75% 的互联网攻击目标是基于Web的应用程序。 AWVS的主要功能模块 Blind SQL Injector:盲注工具 HTTP E…

单元测试报错 No tests found for given includes: [StudyApplicationTests.contextLoads]

当你运行单元测试报错No tests found for given includes: [StudyApplicationTests.contextLoads] 如下: 可能是因为你的gradle测试默认使用的是以gradle启动,改成以IDEA启动即可

力扣 64. 最小路径和

文章目录 题目描述解题思路 题目描述 https://leetcode.cn/problems/minimum-path-sum/ 解题思路 问题类型&#xff1a;动态规划 private int MinPathSum(int[][] grid) {for (int i 0; i < grid.Length; i) {for (int j 0; j < grid[i].Length; j) {if (i 0 &am…

Vue3 Diff 算法简易版

背景 学习一下Vue3中的diff算法~ 逻辑概述 这个算法的过程不算太复杂&#xff1a; 同时从新旧列表的头部遍历&#xff0c;找出相同的节点&#xff0c;则patch&#xff0c;否则就停止遍历&#xff1b;同时从新旧列表的尾部遍历&#xff0c;找出相同的节点&#xff0c;则patc…

使用Jetpack Compose中的LazyHorizontalGrid构建灵活的水平网格布局

在这篇博客中&#xff0c;我们将探讨如何使用Jetpack Compose中的LazyHorizontalGrid构建灵活的水平网格布局。 什么是LazyHorizontalGrid&#xff1f; LazyHorizontalGrid是Jetpack Compose中的一个组件&#xff0c;它可以用来创建一个灵活的、可滚动的水平网格布局。这个组件…

django 自定义分页类和使用总结

一、关于为何要分页 当处理大量数据时&#xff0c;如果一次将这些数据查询出来进行响应&#xff0c;必然对服务器内存、负载有所影响&#xff0c;影响低接口响应&#xff0c;进而影响用户体验。 常见的方式是将数据分段展示给用户&#xff0c;如果当前分段中没有需要的数据&am…

Leetcode:84. 柱状图中最大的矩形(单调栈C++)

目录 84. 柱状图中最大的矩形 问题描述&#xff1a; 实现代码与解析&#xff1a; 单调栈 原理思路&#xff1a; 84. 柱状图中最大的矩形 问题描述&#xff1a; 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。…

Redis 7 十大数据类型

10大数据结构图示 10大数据类型&#xff1a; redis字符串(String)redis列表(ist)redis哈希表(Hash)redis集合(Set)redis有序集合(ZSet)redis地理空间(GEO)redis基数统计(HyperLogLog)redis位图(bitmap)redis位域(bitfield)redis流(Stream) Redis键(key) 命令不区分大小写&am…

数据结构-堆的创建(详解)

目录 堆的概念及结构 堆的实现 堆的向上调整算法 代码实现&#xff1a; 思路详解&#xff1a; 堆的向下调整算法 代码实现&#xff1a; 思路详解&#xff1a; 堆的创建&#xff1a; 堆结构的定义及相关函数的声明&#xff1a; 堆的初始化&#xff1a; 堆的销毁&#x…

如何减少图片大小内存?压缩图片内存大小的方法介绍

什么时候需要压缩图片内存大小 随着移动设备的普及和社交媒体的盛行&#xff0c;我们经常需要通过分享图片来传达信息和与他人互动。然而&#xff0c;有时候图片的文件大小过大&#xff0c;可能会导致上传、下载或发送过程中遇到问题。以下是一些常见情况下需要压缩图片内存大…