Npm_Github_Action 实例

本贴最后更新于 1523 天前,其中的信息可能已经水流花落

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

  • GitHub

    GitHub 于 2008 年上线,目前,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。正因为这些功能所提供的便利,又经过长期的积累,GitHub 的用户活跃度很高,在开源世界里享有深远的声望,并形成了社交化编程文化(Social Coding)。

    210 引用 • 2036 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...