利用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文件,把公钥文件里的内容复制到该文件中


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

相关文章
|
2月前
|
JavaScript API 开发工具
使用GitHub Actions自动发布electron多端安装程序
使用GitHub Actions自动发布electron多端安装程序
45 8
利用 GitHub Actions 自动化你的软件开发流程
GitHub Actions 是由 GitHub 提供的自动化工具,可让你在仓库中触发和执行自动化工作流程,如自动运行测试和部署应用。其核心概念包括工作流程(定义在 YAML 文件中的一系列自动化步骤)、作业和步骤。本文将指导你如何设置和使用 GitHub Actions,并提供实用的自动化示例,帮助你提高开发效率和代码质量。通过简单的配置文件,你可以实现自动运行测试、部署应用甚至自动合并 Pull Requests。
利用 GitHub Actions 自动化你的软件开发流程
在现代软件开发中,自动化是提升效率与质量的关键。GitHub Actions 作为 GitHub 的强大自动化工具,允许你在仓库中自动执行多种任务,如测试、打包、部署代码及自动合并 Pull Requests。本文介绍了 GitHub Actions 的核心概念、设置方法及其实用示例,帮助你快速上手并优化开发流程。通过 YAML 文件定义的工作流程可显著提高工作效率和代码质量。
|
3月前
|
开发者
利用 GitHub Actions 自动化你的软件开发流程
在快速发展的软件开发环境中,自动化对于提升效率与质量至关重要。GitHub Actions 作为一款强大的工具,能帮助开发者实现从自动运行测试到部署应用等工作的自动化。本文详细介绍了 GitHub Actions 的核心概念、设置方法及实际应用示例,如自动测试、部署和合并 Pull Requests,助力提升开发流程的自动化水平。
利用 GitHub Actions 自动化你的软件开发流程
GitHub Actions 是 GitHub 提供的自动化工具,可在仓库中触发和执行工作流程,包括自动运行测试、部署应用等。其核心概念包括工作流程(Workflow)、作业(Job)和步骤(Step),均定义在 YAML 文件中。本文将指导你如何设置和使用 GitHub Actions,并提供自动运行测试、部署应用及合并 Pull Requests 的示例,帮助提高开发效率和代码质量。
|
2月前
|
机器学习/深度学习 人工智能 运维
构建高效运维体系:从自动化到智能化的演进
本文探讨了如何通过自动化和智能化手段,提升IT运维效率与质量。首先介绍了自动化在简化操作、减少错误中的作用;然后阐述了智能化技术如AI在预测故障、优化资源中的应用;最后讨论了如何构建一个既自动化又智能的运维体系,以实现高效、稳定和安全的IT环境。
73 4
|
2月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
63 4
|
24天前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
1月前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
55 4
|
2月前
|
运维 jenkins 持续交付
自动化部署的魅力:如何用Jenkins和Docker简化运维工作
【10月更文挑战第7天】在现代软件开发周期中,快速且高效的部署是至关重要的。本文将引导你理解如何使用Jenkins和Docker实现自动化部署,从而简化运维流程。我们将从基础概念开始,逐步深入到实战操作,让你轻松掌握这一强大的工具组合。通过这篇文章,你将学会如何利用这些工具来提升你的工作效率,并减少人为错误的可能性。