E.F.S.F. E.F.S.F.

销声匿迹 沉默是金

目录
Npm_Github_Action 实例
/  

Npm_Github_Action 实例

Yml

name: deploy
on: [release]
jobs:
  build:
    name: building
    runs-on: ubuntu-16.04
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2-beta
        with:
          node-version: "14"
      - run: npm install
      - run: npm run build
      - uses: appleboy/scp-action@master
        with:
          host: ${{ secrets.REMOTE_HOST }}
          username: ${{ secrets.REMOTE_USER }}
          password: ${{ secrets.PASSWORD }}
          port: ${{ secrets.PORT }}
          source: ".nuxt"
          target: ${{ secrets.REMOTE_TARGET}}
      - uses: docker://evaneos/ssh-action:0.1.0
        with:
          host: ${{ secrets.REMOTE_HOST }} 
          private-key: ${{ secrets.SERVER_SSH_KEY }} 
          user: ${{ secrets.REMOTE_USER }}
          port: ${{ secrets.PORT }}
          password: ${{ secrets.PASSWORD }}
          commands: ~/build.sh

如何工作?

on: [release]

当项目 release 了新版本触发 action

name: building
runs-on: ubuntu-16.04

名称是 Action Page 用来显示用的,runs-on 表示 job 在什么样子的系统上运行

steps:
   - uses: actions/checkout@v2

checkout code 的 action

一个 job 的具体工作,uses 饮用别人写好的 action,具体 action 作用可以在 https://github.com/actions/ 搜罗,比如我需要 scp 文件那就搜 scp,然后根据 readme 进行配置即可

- uses: actions/setup-node@v2-beta
        with:
          node-version: "14"
      - run: npm install
      - run: npm run build

nodejs 相关的 action,由于项目类型为 nodejs 所以用这个,with 是传入一些变量,两个 run 安装依赖并打包

- uses: appleboy/scp-action@master
        with:
          host: ${{ secrets.REMOTE_HOST }}
          username: ${{ secrets.REMOTE_USER }}
          password: ${{ secrets.PASSWORD }}
          port: ${{ secrets.PORT }}
          source: ".nuxt"
          target: ${{ secrets.REMOTE_TARGET}}

由于代码开源所以 host,username,password 这种数据不可能明文写出,所以需要从项目配置里取
image.png

image.png

这个 action 主要是将第一步打包好的静态文件 scp 至我们的服务器上待用

- uses: docker://evaneos/ssh-action:0.1.0
        with:
          host: ${{ secrets.REMOTE_HOST }} 
          private-key: ${{ secrets.SERVER_SSH_KEY }} 
          user: ${{ secrets.REMOTE_USER }}
          port: ${{ secrets.PORT }}
          password: ${{ secrets.PASSWORD }}
          commands: ~/build.sh

这个 action 用来 SSH 到我们的服务器执行 commands,由于静态文件已经放入服务器,build.sh 我们只要将文件放到合适的地方重启服务就好了,至于 SSH 的公钥和私钥请自行 Google

效果展示

image.png

image.png


标题:Npm_Github_Action 实例
作者:devcui
地址:https://blog.eiyouhe.com/articles/2020/10/21/1603261417165.html