• 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 Example
    name: Github Action Example
    
    # 触发 workflow 的事件
    on:
      push:
        # 分支随意
        branches:
          - master
    
    # 一个workflow由执行的一项或多项job
    jobs:
        # 一个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.yml
    name: deploy to aliyun
    on:
      push:
        branches:
          - master
    jobs:
      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插件库中选择的。

    #更多

    使用GitHub Actions发布Hexo网站到GitHub Pages

    GitHub Actions发布博客到阿里云OSS

    GitHub Actions自动构建镜像并推送到阿里云容器镜像服务

    #参考

    Core concepts for GitHub Actions

    阮一峰: GitHub Actions 入门教程

    ps: 微信公众号:Yopai,有兴趣的可以关注,每周不定期更新。不断分享,不断进步

  • 相关阅读:
    第五周日志模块正则和包
    tcpdump常用参数说明
    Python调用API接口的几种方式 数据库 脚本
    关于相互递归调用
    VS Code中配置Markdown
    2019CCPC网络赛 HD6707——杜教筛
    一个关于gcd的等式的证明
    2019CCPC网络赛 HDU 6702——找规律
    双系统的安装与卸载
    [0, 1] 区间内 n 次独立随机事件的一些问题
  • 原文地址:https://www.cnblogs.com/liuheng/p/12053244.html
Copyright © 2020-2023  润新知