本地环境:Mac OS 服务器环境:Ubuntu Server
ssh-keygen -m PEM -t rsa -b 4096
Enter file in which to save the key (/Users/zero/.ssh/id_rsa):deploy_key
cat ~/.ssh/deploy_key
cat ~/.ssh/deploy_key.pub
vim ~/.ssh/authorized_keys
.github
。.github
文件夹中创建文件夹 workflows
。workflows
文件夹中创建文件 deploy.yml
。 name: Depoly Action
on:
push:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: ssh deploy
uses: easingthemes/ssh-deploy@v2.1.5
with:
REMOTE_HOST: ${{ secrets.HOST }}
REMOTE_USER: ${{ secrets.USER }}
SSH_PRIVATE_KEY: ${{ secrets.DEPLOY_KEY }}
SOURCE: "[部署内容路径(以项目目录为根目录)]"
TARGET: "[服务器部署位置的绝对路径]"
- name: Prepare For Django
uses: webfactory/ssh-agent@v0.5.0
with:
ssh-private-key: ${{ secrets.DEPLOY_KEY }}
- name: Restart Django
run: ssh ${{ secrets.USER }}@${{ secrets.HOST }} "kill -HUP [Django uwsgi 进程号]"
ssh deploy
:github 虚拟机通过 ssh 的方式部署项目内容到服务器相应目录。3. Prepare For Django
:github 虚拟机将可以访问服务器的私钥放入 ssh-agent 缓存。4. Restart Django
:github 虚拟机通过 ssh 的方式执行命令,重启 Django uwsgi 的进程。