当github action遇到element-ui-admin
Github Actions是github搞的一个持续集成服务,现在还在测试中,如果想要使用需要到官网去申请.
现在我想使用github actions实现vue-element-admin做的一个管理后台的自动构建发布到生产服务器的一系列过程
新建github workflow

进入github仓库的主页点击actions就可以创建一个新的workflow
新建文件的路径在仓库根目录的./github/workflows/
我之前误操作不知道为什么新建在仓库的根目录
字段说明
-
name字段是 workflow 的名称。如果省略该字段,默认为当前 workflow 的文件名1name: CI -
on字段指定触发 workflow 的条件1 2 3 4 5 6 7 8 9//push时触发 on: [push] //push和pull时触发 on: [push, pull_request] //只在master分支push时触发 on: push: branches: - master -
jobs表示要执行的一项或多项任务1 2 3 4 5 6 7jobs: my_job1: xxxxxxx xxxx my_job2: xxxxx xxxmy_job1和my_job2称为job_id
-
jobs.<job_id>.runs-on字段指定运行所需要的虚拟机环境。它是必填字段。目前可用的虚拟机如下ubuntu-latest,ubuntu-18.04或ubuntu-16.04windows-latest,windows-2019或windows-2016macOS-latest或macOS-10.14
-
jobs.<job_id>.steps字段指定每个 Job 的运行步骤,可以包含一个或多个步骤。每个步骤都可以指定以下字段-
steps.name:步骤名称 -
steps.run:该步骤运行的linux命令 如pwdls-l等 -
steps.uses:该步骤使用actions market中的别人写好的action -
steps.uses.with:该步骤是填入别人定义好的参数,比如在hellow_action中定义好了三个参数(first_name,middle_name, andlast_name)1 2 3 4 5 6 7 8 9jobs: my_first_job: steps: - name: My first step uses: actions/hello_world@master with: first_name: Mona middle_name: The last_name: Octocatsteps.uses.env和with类似
-
我的action
下载项目代码
|
|
@master是指定master的代码 如果想要下载某个tag或某个commit的代码,如下
|
|
npm build
|
|
ssh到生产服务器备份现在正在运行的静态网页
这一部使用了appleboy的ssh-action,这个action就是从action market中找到的 具体文档在这
|
|
如果actions的配置文件里重要的信息,比如密码或密钥可以使用秘密环境变量来替代${{secrets.xxxx}}

把dist部署到生产服务器
vue-element-admin build之后的静态文件在根目录的dist文件夹,所以我要把dist文件夹内的文件都上穿到生产服务器里
这里使用了SamKirkland/FTP-Deploy-Action@2.0.0 文档
|
|
全部action文件
|
|
运行结果
