我想在小型 VPS 提供商那里解决这个问题:
Github worflow,当将文件推送到 GitHub 时,“GH 工作流程”会将 php 文件复制到实时 VPS 服务器。
如何复制它们?
.github/workflows/vps-deploy-prod.yml
:name: vps-deploy-prod
on:
push:
branches:
- master
jobs:
build: 'VPS Run Deploy'
runs-on: ubuntu-latest
steps:
- name: 'Checkout'
uses: action/checkout@master
- name: 'Deploy'
run: make vps-run-deploy
Makefile:
##### VPS specific target
vps-run-deploy:
?? copy files via ssh scp...?
appleboy/scp-action
GitHub Action,用于通过 SSH 复制文件和工件。
renatomh/gobarber-backend/.github/workflows/main.yml
:
# Copy the repository to the directory on the server/VPS used for the application
- name: Copy dist to VPS
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SSH_HOST }}
username: ${{ secrets.SSH_USER }}
port: ${{ secrets.SSH_PORT }}
key: ${{ secrets.SSH_KEY }}
# Selecting all folders except "node_modules"
source: ".,!node_modules"
# The path is based on the directory where the user logged into the server starts
target: "~/app/gobarber-backend"
要使用 GitHub Actions 将文件复制到 VPS,您可以设置一个工作流程,通过 SSH 连接到服务器并使用 rsync 或 scp 传输文件。以下是如何在 GitHub Actions 工作流程中进行配置的示例:
生成 SSH 密钥:生成密钥对并将公钥添加到您的 VPS 中
~/.ssh/authorized_keys
文件。
将 SSH 密钥添加到 GitHub Secrets:将私钥存储在 GitHub 存储库机密中,如下所示
SSH_PRIVATE_KEY
。
GitHub Actions 工作流程:
name: Deploy to VPS
在: 推: 分支机构: - 主要
工作: 部署: 运行:ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup SSH
run: |
mkdir -p ~/.ssh
echo "$SSH_PRIVATE_KEY" | tr -d '\r' > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
- name: Copy Files to VPS
env:
VPS_USER: your_vps_user
VPS_HOST: your_vps_host
run: |
rsync -avz -e "ssh -o StrictHostKeyChecking=no" ./path/to/local/files/ ${VPS_USER}@${VPS_HOST}:/path/to/remote/directory
此设置将在每次推送到
main
分支时触发,将文件从存储库复制到 VPS。
如果您正在寻找 VPS 提供商,性能和稳定性对于部署任务非常重要。 SSD Nodes 等提供商提供可靠的VPS 服务器、高性能 VPS 选项,可以简化像这样的持续部署设置。只需确保您的提供商支持 SSH 访问并具有良好的网络速度以实现无缝文件传输。