真香!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插件库中选择的。 (补充注意⚠️:如果你是要发布到阿里云服务器,同时也使用以上配置action文件,请记住:ACCESS_TOKEN 是服务器ssh密钥对的私钥部分;应将服务器公钥部分添加到接收部署的服务器上的authorized_keys文件中。正常情况下,ACCESS_TOKEN 是 服务器 ~/.ssh目录下的id_rsa 文件中 的内容。仔细看一下https://github.com/marketplac... 文档中的字段配置描述?) 更多 使用GitHub Actions发布Hexo网站到GitHub Pages GitHub Actions发布博客到阿里云OSS GitHub Actions自动构建镜像并推送到阿里云容器镜像服务 参考 Core concepts for GitHub Actions 阮一峰: GitHub Actions 入门教程 ps: 微信公众号:Yopai,有兴趣的可以关注,每周不定期更新。不断分享,不断进步 image

本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):