deploy.yml 3.4 KB
Newer Older
V
vben 已提交
1 2 3 4 5 6 7 8
name: deploy

on:
  push:
    branches:
      - main

jobs:
V
Vben 已提交
9 10
  push-to-ftp:
    if: "contains(github.event.head_commit.message, '[deploy]')"
V
vben 已提交
11
    runs-on: ubuntu-latest
V
Vben 已提交
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Sed Config Base
        shell: bash
        run: |
          sed -i  's#VITE_PUBLIC_PATH\s*=.*#VITE_PUBLIC_PATH = /next/#g' ./.env.production
          sed -i  "s#VITE_BUILD_COMPRESS\s*=.*#VITE_BUILD_COMPRESS = 'gzip'#g" ./.env.production
          cat ./.env.production

      - name: use Node.js 14
        uses: actions/setup-node@v2.1.2
        with:
          node-version: '14.x'

      - name: Get yarn cache
        id: yarn-cache
        run: echo "::set-output name=dir::$(yarn cache dir)"

      - name: Cache dependencies
        uses: actions/cache@v2
        with:
          path: ${{ steps.yarn-cache.outputs.dir }}
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-

      - name: Build
        run: |
          yarn install
          yarn run build

      - name: Deploy
        uses: SamKirkland/FTP-Deploy-Action@2.0.0
        env:
          FTP_SERVER: ${{ secrets.FTP_SERVER }}
          FTP_USERNAME: ${{ secrets.FTP_USERNAME }}
          FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }}
          METHOD: sftp
          PORT: ${{ secrets.FTP_PORT }}
          LOCAL_DIR: dist
          REMOTE_DIR: /srv/www/vben-admin
          ARGS: --delete --verbose --parallel=80
V
vben 已提交
56

V
Vben 已提交
57 58 59
  push-to-gh-page:
    if: "contains(github.event.head_commit.message, '[deploy]')"
    runs-on: ubuntu-latest
V
vben 已提交
60
    steps:
V
Vben 已提交
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
      - name: Checkout
        uses: actions/checkout@v2

      - name: Sed Config Base
        shell: bash
        run: |
          sed -i  's#VITE_PUBLIC_PATH\s*=.*#VITE_PUBLIC_PATH = /vue-vben-admin/#g' ./.env.production
          sed -i  "s#VITE_BUILD_COMPRESS\s*=.*#VITE_BUILD_COMPRESS = 'gzip'#g" ./.env.production
          cat ./.env.production

      - name: use Node.js 14
        uses: actions/setup-node@v2.1.2
        with:
          node-version: '14.x'

      - name: Get yarn cache
        id: yarn-cache
        run: echo "::set-output name=dir::$(yarn cache dir)"

      - name: Cache dependencies
        uses: actions/cache@v2
        with:
          path: ${{ steps.yarn-cache.outputs.dir }}
          key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
          restore-keys: |
            ${{ runner.os }}-yarn-

      - name: Set SSH Environment
        env:
          DOCS_DEPLOY_KEY: ${{ secrets.ACTIONS_DEPLOY_KEY }}
        run: |
          mkdir -p ~/.ssh/
          echo "$ACTIONS_DEPLOY_KEY" > ~/.ssh/id_rsa
          chmod 600 ~/.ssh/id_rsa
          ssh-keyscan github.com > ~/.ssh/known_hosts
          chmod 700 ~/.ssh && chmod 600 ~/.ssh/*
          git config --global user.email "vbenadmin@163.com"
          git config --global user.name "vbenAdmin"

      - name: Delete gh-pages branch
        run: |
          git push origin --delete gh-pages

      - name: Build
        run: |
          yarn install
          yarn run build
V
Vben 已提交
108 109
          touch dist/.nojekyll
          cp dist/index.html dist/404.html
V
vben 已提交
110 111 112 113 114 115

      - name: Deploy
        uses: peaceiris/actions-gh-pages@v2.5.0
        env:
          ACTIONS_DEPLOY_KEY: ${{secrets.ACTIONS_DEPLOY_KEY}}
          PUBLISH_BRANCH: gh-pages
V
Vben 已提交
116 117 118
          PUBLISH_DIR: ./dist
        with:
          forceOrphan: true