打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
GitHub Action一键部署配置,值得拥有

最近由于自己的个人应用增加,每次都需要在服务器手动发布,觉得特别麻烦,所以想通过代码控制自动发布,直接选择了GitHub Action。

GitHub Action持续集成服务,目前已经免费开放使用,由于大部分人的个人项目都是放在github上,那么使用它来发布、测试、部署,是非常方便的。

原文链接跳转

#Github Action配置

下面的内容默认你已经会创建Github Action,官方提供了很多Github Action 配置模版,可以根据自己的需求随意选择,不是太了解的可以先参考阮一峰 GitHub Actions入门教程,了解一下Github Action。

我们来看看Github Action配置文件的基本构成,配置文件格式是.yml,示例如下:

# main.yml# 一个 workflow,名字为Github Action Examplename: Github Action Example# 触发 workflow 的事件on:  push:    # 分支随意    branches:      - master# 一个workflow由执行的一项或多项jobjobs:    # 一个job任务,任务名为build    build:        # runs-on 指定job任务运行所需要的虚拟机环境(必填字段)        runs-on: ubuntu-latest        # steps是每个Job的运行步骤,可以包含一个或多个步骤        steps:            # action命令,切换分支获取源码            - name: Checkout                # 使用action库  actions/checkout获取源码                uses: actions/checkout@master            # action命令,安装Node10            - name: use Node.js 10                # 使用action库  actions/setup-node安装node                uses: actions/setup-node@v1                with:                    node-version: 10            # action命令,install && test            - name: npm install and test                # 运行的命令或者 action                run: |                    npm install                    npm run test                # 环境变量                env:                    CI: true
  • Action是工作流中最小的可移植构建块。你可以创建自己的动作,使用从GitHub社区共享的action库,以及自定义公共action库。

  • Step是Job执行的一组任务。Job中的每个步骤都在同一运行程序中执行,从而允许该Job中的操作使用文件系统共享信息,Step可以运行命令或action。

  • Job由Step构成。你可以定义工作流文件中Job的运行方式的依赖关系规则。Job可以同时并行运行,也可以依赖于先前Job的状态依次运行。

  • Workflow由一个或多个Job组成,可以通过事件进行计划或激活。你可以在存储库中设置一个可配置的自动化过程,以在GitHub上构建,测试,打包,发布或部署任何项目。

Github: Github Action插件查询库,可以查询你需要的action库,这些都是共享的,如果满足不了需求也可以自己定义。

#Github Action发布阿里云ECS

下面就是我发布到阿里云ECS的 Github Action配置文件

我的Github Action服务配置

# main.ymlname: deploy to aliyunon:  push:    branches:      - masterjobs:  build:    runs-on: ubuntu-latest    steps:      # 切换分支      - name: Checkout        uses: actions/checkout@master      # 下载 git submodule      - uses: srt32/git-actions@v0.0.3        with:          args: git submodule update --init --recursive      # 使用 node:10      - name: use Node.js 10        uses: actions/setup-node@v1        with:          node-version: 10      # npm install      - name: npm install and build        run: |          npm install          npm run build        env:          CI: true      # Deploy      - name: Deploy        uses: easingthemes/ssh-deploy@v2.0.7        env:          SSH_PRIVATE_KEY: ${{ secrets.ACCESS_TOKEN }}          ARGS: "-avz --delete"          SOURCE: "[Current File Dir]"          REMOTE_HOST: "[Domain]"          REMOTE_USER: "[UserName]"          TARGET: "[Server Dir]"

以上是我的配置文件,action插件请根据自己的需求合理选择。我是要博客网站,发布到阿里云服务上,所以采用以上配置,而最后的action Deploy中action插件的选择,也是根据需求,在Github: action插件库中选择的。

#参考

Core concepts for GitHub Actions

阮一峰: GitHub Actions 入门教程

来源:https://www.icode9.com/content-4-598401.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
一个最简单的 Github workflow 例子
利用GitHub Actions 自动部署 Hexo博客 全自动运行 不知所措的新哥
HEXO+Github,搭建属于自己的博客
GitHub Actions 指南
Github原生CI/CD,初尝Github Actions
Improve your Docker workflow with this VS Code extension
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服