最近做了一个项目自动化部署到阿里云上的CI,主要是利用了github上的Actions,步骤如下:
- 首先在github的Actions中生成new workFlow,然后会在项目中自动生成.github/workflow文件夹
- 在其中的main.yml文件中配置CI指令
name: CI on: [push] 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 uses: actions/setup-node@v1 with: node-version: '12.x' # npm install - name: npm install and build run: | cd my-site npm install npm install -g gatsby-cli gatsby build env: CI: false # Deploys # Deploys - name: Deploy uses: easingthemes/ssh-deploy@main //Actions插件 env: SSH_PRIVATE_KEY: ${{ secrets.ACCESS_TOKEN }} //采用ssh来简历连接 ARGS: '-avz --delete' SOURCE: 'my-site/public/' //打包后的文件源 REMOTE_HOST: 'IP地址' //服务器的IP地址 REMOTE_USER: 'root' //服务端角色 TARGET: '/www/public' //服务器target地址(建议目标地址不要超过两层)
-
easingthemes/ssh-deploy@main 主要使用该插件来进行两端的数据同步