githubAction 自动化发布部署到服务器
在 github 仓库创建一个自动化配置new workflows,创建好的文件会在项目的.github/workflows/main.yml出现
将main.yml文件内容修改如下:
yml
# 构建 VitePress 并部署到 GitHub Pages
name: deploy-website
on:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
version: 8
- name: 安装 nodejs
uses: actions/setup-node@v4
with:
node-version: "20"
cache: pnpm
- name: install deps
run: pnpm install
- name: build app
env:
VITE_FIREBASE_API_KEY: ${{ secrets.VITE_FIREBASE_API_KEY }}
VITE_FIREBASE_AUTH_DOMAIN: ${{ secrets.VITE_FIREBASE_AUTH_DOMAIN }}
VITE_FIREBASE_PROJECT_ID: ${{ secrets.VITE_FIREBASE_PROJECT_ID }}
VITE_GOOGLE_CLIENT_ID: ${{ secrets.VITE_GOOGLE_CLIENT_ID }}
VITE_GOOGLE_CLIENT_SECRET: ${{ secrets.VITE_GOOGLE_CLIENT_SECRET }}
run: pnpm build
- name: Setup Pages
uses: actions/configure-pages@v5
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: kuangyx
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4github 变量
因为当前仓库是开源的,直接写服务器地址会被看到,所以这里使用的是github的变量,可以再仓库的setting --> Secrets and variables --> Actions中点击New repository secret创建变量名,名为SERVER_HOST时参考如下使用
secrets.SERVER_PRIVATE_KEY 的设置
- 需要在你的服务器运行
ssh-keygen -t rsa -b 4096 -C "你的邮箱"创建ssh - 运行
cat .ssh/id_rsa.pub | ssh b@B 'cat >> .ssh/authorized_keys',其中b@B对应你的服务器登录名与用户名,看控制台当前的用户即可,例如[root@VM-0-3-centos ~]#