利用Github Actions实现自动化部署

简介: 利用Github Actions实现自动化部署

在没有自动化部署的情况话,前端需要部署代码的流程可能是这样的:


1.yarn build:xxx build指定环境包


2.将打包文件给运维或者后台(前端有权限可省略这一步)


3.将打包文件放到服务器指定目录


亦或者是做了自动化脚本,但是每次需要后台人员手动执行脚本


    可见每次都需要进行一定的沟通以及手动操作,解决这个问题,我们可以利用Github Actions实现自动化打包部署


     很多时候,我们希望在提交代码,合并分支等操作的时候,需要做一些其他的操作,比如抓取代码、运行测试、运行打包、登录远程服务器、将文件上传到服务器等,而且这些操作很多时候都是类似的。基于用户的这个需求,Github推出了actions功能。


      actions允许开发者将每个操作写成独立的脚本,存放到代码仓库,开发者可以将这些脚本发布,发布后的脚本可以被其他开发者引用。


      有了actions,开发者不用自己写脚本,直接引用其他人的aciton即可(如果可以满足你的需求),然后整个持续集成的过程,就变成了多个actions的组合。


      当你需要查找actions的时候,可以去Github Action市场搜索,点击需要的action,会进入该action的页面


网络异常,图片无法展示
|


点击右上角的Use latest version或者点击下拉选择版本,会弹出使用方法,点击复制使用即可


     想要使用github action执行我们的脚本,需要在项目的根目录创建.github文件夹,在.github文件夹下创建workflow文件夹,在workflow文件夹下写我们的配置文件,配置文件为YAML格式,文件后缀名为.yml,workflow文件夹下可以有多个.yml文件,github会自动运行所有.yml文件。workflow文件的配置可以查看官方文档,下边贴上我的配置


name: 脚本名称
# 触发脚本的条件,develop分支push代码的时候
on:
  push:
    branches:
      - develop
# 要执行的任务
jobs:
  # 任务名称
  build:
    # runs-on 指定job任务运行所需要的虚拟机环境(必填)
    runs-on: ubuntu-latest
    # 任务步骤
    steps:
      # 获取源码
      - name: 迁出代码
        # 使用action库  actions/checkout获取源码
        uses: actions/checkout@master
      # 安装node
      - name: 安装node.js
        # 使用action库 actions/setup-node 安装node
        uses: actions/setup-node@v1
        with:
          node-version: 10.16.3
      # 安装依赖
      - name: 安装依赖
        run: npm install
      # 打包
      - name: 打包
        run: npm run build:xxx
      # 上传打包文件到远程服务器
      - name: 上传文件到远程服务器
        uses: zhenyuWang/Upload-File-Action@v1.0.1
        with:
          username: "登录远程服务器的用户名"
          server: "远程服务器ip"
          port: "22"
          ssh_private_key: ${{ secrets.私钥}}
          # 要上传文件所在目录
          local_path: "./dist/*"
          # 远程服务器目标路径
          target_path: "/usr/local/nginx/html/xxx"
复制代码


上述脚本只需要cv到自己的文件里就好,需要注意的是私钥配置,过程如下


1.生成SSH key


ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f test -N ""
复制代码


会得到以下两个文件 (C盘用户目录下)


test.pub  (public key)
test      (private key)
复制代码


2.配置私钥


打开github仓库,点击settings


网络异常,图片无法展示
|


然后点击左侧Secrets


网络异常,图片无法展示
|


然后点击右上角New repository secret


网络异常,图片无法展示
|


网络异常,图片无法展示
|


需要注意的是这里的私钥名称就是配置文件里的私钥名称


3.配置公钥


登录远程服务器,找到root/.ssh/authorized_keys文件,把公钥文件里的内容复制到该文件中


至此,我们的自动化打包部署就完成了,快去试下吧!

相关文章
|
人工智能 API 开发工具
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
GitHub MCP Server是基于Model Context Protocol的服务器工具,提供与GitHub API的无缝集成,支持自动化处理问题、Pull Request和仓库管理等功能。
3630 2
GitHub官方开源MCP服务!GitHub MCP Server:无缝集成GitHub API,实现Git流程完全自动化
|
JavaScript API 开发工具
使用GitHub Actions自动发布electron多端安装程序
使用GitHub Actions自动发布electron多端安装程序
515 8
利用 GitHub Actions 自动化你的软件开发流程
GitHub Actions 是由 GitHub 提供的自动化工具,可让你在仓库中触发和执行自动化工作流程,如自动运行测试和部署应用。其核心概念包括工作流程(定义在 YAML 文件中的一系列自动化步骤)、作业和步骤。本文将指导你如何设置和使用 GitHub Actions,并提供实用的自动化示例,帮助你提高开发效率和代码质量。通过简单的配置文件,你可以实现自动运行测试、部署应用甚至自动合并 Pull Requests。
利用 GitHub Actions 自动化你的软件开发流程
GitHub Actions 是 GitHub 提供的自动化工具,可在仓库中触发和执行工作流程,包括自动运行测试、部署应用等。其核心概念包括工作流程(Workflow)、作业(Job)和步骤(Step),均定义在 YAML 文件中。本文将指导你如何设置和使用 GitHub Actions,并提供自动运行测试、部署应用及合并 Pull Requests 的示例,帮助提高开发效率和代码质量。
利用 GitHub Actions 自动化你的软件开发流程
在现代软件开发中,自动化是提升效率与质量的关键。GitHub Actions 作为 GitHub 的强大自动化工具,允许你在仓库中自动执行多种任务,如测试、打包、部署代码及自动合并 Pull Requests。本文介绍了 GitHub Actions 的核心概念、设置方法及其实用示例,帮助你快速上手并优化开发流程。通过 YAML 文件定义的工作流程可显著提高工作效率和代码质量。
利用 GitHub Actions 自动化你的软件开发流程
在快速发展的软件开发环境中,自动化对于提升效率与质量至关重要。GitHub Actions 作为一款强大的工具,能帮助开发者实现从自动运行测试到部署应用等工作的自动化。本文详细介绍了 GitHub Actions 的核心概念、设置方法及实际应用示例,如自动测试、部署和合并 Pull Requests,助力提升开发流程的自动化水平。
|
10月前
|
数据采集 运维 监控
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
本文系统解析爬虫与自动化核心技术,涵盖HTTP请求、数据解析、分布式架构及反爬策略,结合Scrapy、Selenium等框架实战,助力构建高效、稳定、合规的数据采集系统。
1366 62
爬虫与自动化技术深度解析:从数据采集到智能运维的完整实战指南
|
11月前
|
运维 Linux 网络安全
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
自动化真能省钱?聊聊运维自动化如何帮企业优化IT成本
316 4
|
运维 监控 安全
从实践到自动化:现代运维管理的转型与挑战
本文探讨了现代运维管理从传统人工模式向自动化转型的必要性与路径,分析了传统运维的痛点,如效率低、响应慢、依赖经验等问题,并介绍了自动化运维在提升效率、降低成本、增强系统稳定性与安全性方面的优势。结合技术工具与实践案例,文章展示了企业如何通过自动化实现运维升级,推动数字化转型,提升业务竞争力。