利用 GitHub Action 对项目进行自动部署

这篇具有很好参考价值的文章主要介绍了利用 GitHub Action 对项目进行自动部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说一下项目背景,这是一个基于 Docusaurus 搭建的个人博客平台:Yopth.github.io

利用 GitHub Action 对项目进行自动部署

⚛️ Docusaurs 是一个优秀的搭建网站框架,基于 React 和 MDX,插件化、国际化、SEO 等做的都很不错,有需要搭建网站的同学可以考虑。

该网站利用 GitHub Pages 部署,这个方式也是 Docusaurus 所支持的,详见:Deploying to GitHub Pages。

利用 Docusaurus 的能力,我们可以运行 yarn deploy 命令去把我们的项目代码部署到 GitHub Pages 上去,但是每一次部署都需要手动,很麻烦。利用 GitHub Action 可以自动化部署工作流。

利用 GitHub Action 对项目进行自动部署

这是来自 GitHub 官网的介绍,GitHub Action 其实就是一套 CI/CD,接下来我们来看下 GitHub 是如何定义这套 CI/CD 规则的。

CI/CD, Continuous Integration / Continuous Delivery, 持续集成 / 持续交付,即通过构建自动化的发布部署流程,将功能快速交付到用户手上。

GitHub Action 有 5 个重要的概念。

第一个是 workflow,即工作流,工作流定义了部署的流程,直观来看,所有工作流定义在项目中的 .github 下的 workflows 文件夹中,每一个工作流就是一个 .yaml 文件。

利用 GitHub Action 对项目进行自动部署

第二个是 Event,即事件。就像设置一个按钮一样,只有当用户点击这个按钮的时候,事件才会被触发。

事件也就是一个 Action 的起点,常见的事件比如有创建 Pull Request,打开一个新 isuue,推送代码到仓库,还有调用 GitHub 的 API,当然,也可以手动触发事件。

第三是 Runner。一个工作流不会平白无故地运行,它肯定会有一个依托的环境,这个环境就是 Runner。公开仓库每个月可以白嫖 2000 分钟,超出就要收费了。

利用 GitHub Action 对项目进行自动部署

第四是 Job,Job 就是 workflow 上细化出来的工作步骤,相当于流水线上的工人。Job 可以是脚本代码,也可以是接下来要讲到的 Action。

多个 Job 会并行执行,当 Job 之间存在依赖的话,那么就会根据依赖串行执行,并且由于这些 Job 是在同一个 Runner 运行,那么产生的数据是可以共享的。

利用 GitHub Action 对项目进行自动部署

最后是 action,实际上也就是可复用的 workflow。很容易想象得到,当我们自己的有两个项目,定义的 workflow 都一样,那么重复写两次代码肯定没必要。

如何创建 workflow,以官网例子来说:

首先我们在项目根目录创建 .github > workflows > deploy.yaml 这里的文件层级目录。

接着编辑 deploy.yaml 文件

name: learn-github-actions
on: [push]
jobs:
  check-bats-version:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions/setup-node@v3
        with:
          node-version: '14'
      - run: npm install -g bats
      - run: bats -v
  1. name:整个 workflow 的名字,可选。
  1. on: [push]:workflow 触发的事件,push 表示当推送代码到仓库的时候触发。
  1. jobs:定义所有的 job,这里只有一个 job。
  1. check-bats-version:job 的名称。
  1. runs-on: ubuntu-latest:定义 runner 的环境。
  1. steps:定义 job 的每一个步骤。
  1. uses: actions/checkout@v3:这里就是一个复用的 action,它会把仓库代码检出到 runner 中。
  1. actions/setup-node@v3:这里也是一个复用的 action,它的作用是安装一个指定版本的 node。
  1. run: npm install -g bats:全局安装 bats 依赖 npm 包
  1. bats -v:运行 bats 命令,输出版本。

当推送到 GitHub 仓库上去之后,会自动触发 Action:

利用 GitHub Action 对项目进行自动部署

可以看到我们定义的 workflow:
利用 GitHub Action 对项目进行自动部署
可以看到我们的 yaml 文件:

利用 GitHub Action 对项目进行自动部署

点击进去可以查看 Action 运行的结果:

利用 GitHub Action 对项目进行自动部署
也可以查看 Job 的执行日志:

利用 GitHub Action 对项目进行自动部署

学习了 GitHub Action,那么接下来就是为 Yopth 网站创建一个 yaml 文件:

name: Deploy to GitHub Pages

on:
  push:
    branches:
      - main

jobs:
  deploy:
    name: Deploy to GitHub Pages
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2

      - uses: actions/setup-node@v3
        with:
          node-version: 18
          cache: yarn

      - name: Install dependencies
        run: yarn install --frozen-lockfile

      - name: Build website
        run: yarn build

      - name: Deploy to GitHub Pages
        uses: peaceiris/actions-gh-pages@v3
        with:
          github_token: ${{ secrets.TOKEN }}
          publish_dir: ./build
          user_name: Penggeor
          user_email: wkpcoder@163.com

这里我们使用 Docusaurus 官方推荐的 Action 配置。这里有一个 secrets.TOKEN,TOKEN 这种属于私密常量,肯定是不能直接明文暴露在代码中,我们可以在组织的设置中去创建这样的私密常量:

利用 GitHub Action 对项目进行自动部署

利用 GitHub Action 对项目进行自动部署

利用 GitHub Action 对项目进行自动部署

通过配置这样简单的 yaml 文件,就实现一个简易好用的 CI/CD,下次只需要推送代码到 main 分支,即可触发 GitHub Pages 的重新部署。GitHub Action 确实可以操练起来 😘文章来源地址https://www.toymoban.com/news/detail-423326.html

到了这里,关于利用 GitHub Action 对项目进行自动部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • github action初体验实现maven项目自动ci test

    这里是 weihubeats ,觉得文章不错可以关注公众号 小奏技术 ,文章首发。拒绝营销号,拒绝标题党 GitHub Actions是GitHub提供的一种持续集成/持续交付(CI/CD)工具,它可以帮助开发者自动化软件开发流程中的各种任务,如构建、测试、部署等。通过在代码仓库中配置和定义工作流

    2024年01月23日
    浏览(44)
  • 利用Git及GitHub对项目进行版本控制

    目录 一、在本地安装Git 二、利用Git将项目上传到Github上  三、用HTTPS获取GitHub上的项目 四、版本控制 1、Git安装链接: https://git-scm.com/downloads 2、下载安装包,双击exe文件进行安装:  3、接下来会弹出一系列询问框,全部选择next即可:  4、安装完毕选择Finish即可: 5、启动

    2024年02月08日
    浏览(37)
  • 使用 GitHub Action 自动更新 Sealos 集群的应用镜像

    在 IT 领域,自动化无疑已成为提高工作效率和减少人为错误的关键。Sealos 作为一个强大的云操作系统,已经为许多企业和开发者提供了稳定可靠的服务。与此同时,随着技术不断发展,集成更多的功能和服务变得尤为重要。考虑到这一点,本文将介绍如何 利用 GitHub Action 来

    2024年02月08日
    浏览(44)
  • 白嫖GitHub Action实现开源项目CICD

    在今天这个快速变化的时代,开发者们需要与时俱进,不断提升自己的工作效率。在这篇文章里,将一起探讨如何使用CI/CD和Github Action让你的项目更加高效,快速响应市场变化。 CI(持续集成,Continuous Integration)是一种软件开发实践,它要求开发者频繁地将代码集成到共享的

    2023年04月26日
    浏览(50)
  • 使用Github-Action持续部署Springboot或vue

    GitHub Actions 是 GitHub 提供的一项持续集成 (CI) 和持续部署 (CD) 服务。它允许你在代码仓库中定义和运行自动化的工作流程,以响应存储库中的事件或调度。GitHub Actions 可以用于构建、测试、打包和部署项目,也可以执行其他自动化任务。 详细github action相关信息请看最底部 第

    2024年01月16日
    浏览(54)
  • 使用GitHub Actions 来进行项目远程服务器部署

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

    2024年02月14日
    浏览(50)
  • 超简单:github-action自动化发布npm包小记

    打开npm官网,并注册自己的npm账号 1.登录npm官网,登录成功后,点开右上角头像,并点击Access Tokens选项 2.点开Generate New Token下拉框,点击Classic Token(和Granular Access Token有什么区别,请自行查验?) 3.填写token信息,选择token类型为Automation(可以避免2FA校验),保存申请的token信息

    2024年02月05日
    浏览(39)
  • 【Github-Action】统计整个社区所有项目的贡献

    项目地址 如果你对github-action感兴趣,还可以看这篇文章, 这篇文章教会你如何开发Github Action,并且让你明白它是什么,怎么用,如何做到的。如何开发一个action 我是一个生成 contributors.png 的 github-action,我和市面上其他的不一样,我专门解决整个 Organization 的 commit 统计,

    2024年01月16日
    浏览(48)
  • 【Github-Action】自动为PR添加修改文件类型的label

    如果你对github-action感兴趣,还可以看这篇文章, 这篇文章教会你如何开发Github Action,并且让你明白它是什么,怎么用,如何做到的。如何开发一个action pr-label自动添加工具,为您添加核心团队提交的标志和修改的文件类型… 可以从的pr列表中一眼辨别哪些是核心团队开发的

    2024年01月25日
    浏览(63)
  • github-webhook+docker实现项目可持续自动化部署

    使用nginx+pm2+github-webhook+docker实现项目自动部署 注:docker也能实现pm2的守护进程功能(持续启动项目),所以使用了docker就不需要使用pm2了 但是需要注意的是使用node启动的webhook服务器不能使用docker,因为在webhook内部的sh脚本执行时需要到服务器的前后端项目文件中去执行,

    2024年04月12日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包