d2-admin/.github/workflows/deploy.yml

107 lines
2.8 KiB
YAML

name: Deploy preview
on:
push:
branches:
- master
jobs:
cdn:
name: CDN
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: bahmutov/npm-install@v1
- name: Set vue cli env
shell: bash
run: |
echo -e "\
VUE_APP_PUBLIC_PATH=/d2-admin/preview/\
" > .env.preview.local
cat .env.preview.local | while read line
do
echo $line
done
- name: Build
run: yarn build:preview --report
- name: CDN download qshell
run: |
wget http://devtools.qiniu.com/qshell-linux-x86-v2.4.0.zip
unzip qshell-linux-x86-v2.4.0.zip
mv qshell-linux-x86-v2.4.0 qshell
- name: CDN login
run: ./qshell account ${{ secrets.AK }} ${{ secrets.SK }} GITHUB_ACTION
- name: CDN upload
run: |
./qshell qupload2 \
--src-dir=$GITHUB_WORKSPACE/dist \
--bucket=d2-cdn \
--key-prefix=${GITHUB_REPOSITORY//*\//}/preview/ \
--overwrite=true \
--check-exists=true \
--check-hash=true \
--check-size=true \
--rescan-local=true \
--thread-count=32
- name: CDN refresh
run: |
echo "https://cdn.d2.pub/${GITHUB_REPOSITORY//*\//}/preview/" > cdnrefresh.txt
./qshell cdnrefresh --dirs -i ./cdnrefresh.txt
ftp:
name: FTP
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: bahmutov/npm-install@v1
- name: Set vue cli env
shell: bash
run: |
echo -e "\
VUE_APP_PUBLIC_PATH=/d2-admin/preview/\
" > .env.preview.local
cat .env.preview.local | while read line
do
echo $line
done
- name: Build
run: yarn build:preview --report
- 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: /www/d2-admin/preview
ARGS: --delete --verbose --parallel=100
gh-pages:
name: Github Pages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: bahmutov/npm-install@v1
- name: Set vue cli env
shell: bash
run: |
echo -e "\
VUE_APP_PUBLIC_PATH=/d2-admin/\
" > .env.preview.local
cat .env.preview.local | while read line
do
echo $line
done
- name: Build
run: yarn build:preview --report
- name: Deploy
uses: peaceiris/actions-gh-pages@v2
env:
PERSONAL_TOKEN: ${{ secrets.ACCESS_TOKEN }}
PUBLISH_BRANCH: gh-pages
PUBLISH_DIR: ./dist
with:
forceOrphan: true