comment test #45
This file contains hidden or 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: Build and Deploy | |
| on: | |
| push: | |
| branches: | |
| - master | |
| workflow_dispatch: | |
| jobs: | |
| build-and-deploy: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: "npm" | |
| cache-dependency-path: '**/package-lock.json' | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y make libssl3 libssl-dev | |
| make init | |
| - name: Configure GIT identity globally | |
| run: | | |
| git config --global user.name "GitHub Actions Bot" | |
| git config --global user.email "actions@github.com" | |
| - name: Build toolchain and data | |
| env: | |
| DASHSCOPE_API_KEY: ${{ secrets.DASHSCOPE_API_KEY }} | |
| run: make all | |
| - name: Commit and push generated changes | |
| id: commit-changes | |
| run: | | |
| git add -A | |
| if git diff --staged --quiet; then | |
| echo "changes=false" >> "$GITHUB_OUTPUT" | |
| else | |
| git commit -m "chore: auto-update generated content [ci skip]" | |
| git push | |
| echo "changes=true" >> "$GITHUB_OUTPUT" | |
| fi | |
| - name: Setup SSH | |
| uses: webfactory/ssh-agent@v0.9.0 | |
| with: | |
| ssh-private-key: ${{ secrets.DEPLOY_SSH_KEY }} | |
| - name: Add VPS SSH known hosts | |
| env: | |
| VPS_HOST: ${{ secrets.DEPLOY_VPS_HOST }} | |
| VPS_PORT: ${{ secrets.DEPLOY_VPS_PORT }} | |
| run: | | |
| mkdir -p ~/.ssh | |
| ssh-keyscan -p "$VPS_PORT" -H "$VPS_HOST" >> ~/.ssh/known_hosts | |
| - name: Deploy to VPS bare repository | |
| env: | |
| VPS_HOST: ${{ secrets.DEPLOY_VPS_HOST }} | |
| VPS_PORT: ${{ secrets.DEPLOY_VPS_PORT }} | |
| VPS_REPO_PATH: ${{ secrets.DEPLOY_VPS_REPO_PATH }} | |
| run: | | |
| mkdir -p temp-repo | |
| cd temp-repo | |
| git init | |
| export GIT_SSH_COMMAND="ssh -p $VPS_PORT -o StrictHostKeyChecking=no" | |
| git remote add origin ssh://git@${VPS_HOST}:${VPS_REPO_PATH} | |
| git checkout --orphan temp-branch | |
| cp -r ../build/dist/. . | |
| git add -A | |
| git commit -m "Deploy $(date '+%Y-%m-%d %H:%M:%S') [ci skip]" | |
| git push --force origin temp-branch:master |