在 ECS 上创建用户,并设置密码
adduser github-action
asswd passwd github-action
免密登陆
- 生成密钥
1
| ssh-keygen -t rsa -C 'github-action' -f ~/.ssh/github_action
|
- 复制密钥到远程服务器
1 2
| ssh-copy-id -i ~/.ssh/github_action.pub github-action@nnnnzs.cn
|
- 设置默认登录
因为同一台电脑可能既有 root 也有其他用户登录 ecs 所以可以配置指定 Host,指定 User,使用不同的密钥
1 2 3 4 5 6 7 8
| Host nnnnzs.cn HostName github-action User github-action Port 22 PreferredAuthentications publickey IdentityFile /Users/nnnnzs/.ssh/github_action UseKeychain yes AddKeysToAgent yes
|
赋予部署文件夹权限
设置github-action的 secrets
https://github.com/NNNNzs/upload/settings/secrets/actions
编写自动部署脚本
mkdir -p .github/workflows
touch .github/workflows/build.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| name: vue3 on: push: branches: [master] pull_request: branches: [master]
jobs: build: runs-on: ubuntu-latest steps: - name: checkout code uses: actions/checkout@v2 - name: Use Node.js uses: actions/setup-node@v2 with: node-version: '14' - name: install run: npm install - name: build run: npm run build - name: deploy uses: appleboy/scp-action@master with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{secrets.KEY}} port: ${{ secrets.PORT }} source: "./dist/" target: ${{secrets.PATH}}
|
1 2 3
| curl -H "Content-Type:application/json" -X POST -d '{"title":"自动部署","content":"upload部署完成","url":"https://api.nnnnzs.cn/upload"}' https://api.nnnnzs.cn/Api/msg
curl -H "Content-Type:application/json" -X POST -d '{"uid":"123"}' http://127.0.0.1:3000/rest/test
|