asdf #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI/CD Pipeline | |
on: | |
push: | |
branches: | |
- main # 当代码推送到 main 分支时触发 | |
jobs: | |
# 前端部署 | |
deploy_frontend: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Install dependencies (Frontend) | |
run: | | |
cd front_end | |
npm install | |
- name: Build frontend project | |
run: | | |
cd front_end | |
npm run build | |
- name: Deploy Fronted | |
uses: appleboy/scp-action@master | |
with: | |
host: 119.91.193.117 | |
username: root | |
password: ${{ secrets.PASSWORD }} | |
port: 22 | |
source: "dist/*" | |
target: /var/www/vehicle/front | |
# 后端部署 | |
deploy_backend: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Set up Node.js | |
uses: actions/setup-node@v2 | |
with: | |
node-version: '20.12.2' # 确保与后端项目的 Node 版本一致 | |
- name: Install dependencies (Backend) | |
run: | | |
cd back_end | |
npm install | |
- name: Deploy backend | |
env: | |
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} | |
SERVER_IP: ${{ secrets.SERVER_IP }} | |
DEPLOY_PATH: /path/to/deploy/backend # 指定服务器上的部署路径 | |
run: | | |
# 设置SSH密钥 | |
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ssh_key | |
cat ssh_key | |
chmod 400 ssh_key | |
# 检查目标目录是否存在,如果不存在则创建 | |
ssh -i ssh_key -o StrictHostKeyChecking=no ${{ secrets.SERVER_IP }} "if [ ! -d '${{ env.DEPLOY_PATH }}' ]; then mkdir -p '${{ env.DEPLOY_PATH }}'; fi" | |
# 将整个后端项目目录传输到服务器 | |
scp -i ssh_key -r ./back_end/ ${{ secrets.SERVER_IP }}:${{ env.DEPLOY_PATH }} | |
# 清理SSH密钥文件 | |
rm ssh_key |