chroe: add demo mode
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
name: deploy-demo-site
|
||||
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [ "main" ]
|
||||
|
||||
jobs:
|
||||
build-deploy:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: "20.x"
|
||||
|
||||
- name: Set up Golang
|
||||
uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version: "1.20"
|
||||
|
||||
- name: Install npm dependencies
|
||||
run: npm ci
|
||||
working-directory: web/
|
||||
|
||||
- name: Run npm build
|
||||
run: export NODE_ENV=prod && npm run build:demo
|
||||
working-directory: web/
|
||||
|
||||
- name: Check build static
|
||||
run: ls dist/ -la
|
||||
working-directory: web/
|
||||
|
||||
- name: Install Go modules
|
||||
run: go mod tidy
|
||||
|
||||
- name: Build Go
|
||||
run: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o Message-Nest
|
||||
|
||||
- name: Copy files to server
|
||||
uses: appleboy/scp-action@master
|
||||
with:
|
||||
host: ${{ secrets.SERVER_HOST }}
|
||||
port: ${{ secrets.SERVER_PORT }}
|
||||
username: ${{ secrets.SERVER_USERNAME }}
|
||||
password: ${{ secrets.SERVER_PASSWD }}
|
||||
source: "Message-Nest"
|
||||
target: ${{ secrets.REMOTE_DEMO_TARGET }}
|
||||
|
||||
- name: SSH into server and restart service
|
||||
uses: appleboy/ssh-action@master
|
||||
with:
|
||||
host: ${{ secrets.SERVER_HOST }}
|
||||
port: ${{ secrets.SERVER_PORT }}
|
||||
username: ${{ secrets.SERVER_USERNAME }}
|
||||
password: ${{ secrets.SERVER_PASSWD }}
|
||||
script: |
|
||||
${{ secrets.REMOTE_DEMO_SCRIPT }}
|
||||
@@ -0,0 +1 @@
|
||||
VITE_RUN_MODE = 'demo'
|
||||
Generated
+28
@@ -23,6 +23,7 @@
|
||||
"@rushstack/eslint-patch": "^1.3.3",
|
||||
"@vitejs/plugin-vue": "^4.4.0",
|
||||
"@vue/eslint-config-prettier": "^8.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"eslint": "^8.49.0",
|
||||
"eslint-plugin-vue": "^9.17.0",
|
||||
"prettier": "^3.0.3",
|
||||
@@ -1623,6 +1624,24 @@
|
||||
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/cross-env": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz",
|
||||
"integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"cross-spawn": "^7.0.1"
|
||||
},
|
||||
"bin": {
|
||||
"cross-env": "src/bin/cross-env.js",
|
||||
"cross-env-shell": "src/bin/cross-env-shell.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.14",
|
||||
"npm": ">=6",
|
||||
"yarn": ">=1"
|
||||
}
|
||||
},
|
||||
"node_modules/cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
@@ -4843,6 +4862,15 @@
|
||||
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
|
||||
"dev": true
|
||||
},
|
||||
"cross-env": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/cross-env/-/cross-env-7.0.3.tgz",
|
||||
"integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cross-spawn": "^7.0.1"
|
||||
}
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "vite",
|
||||
"demo": "vite --mode demo",
|
||||
"build:demo": "vite build --mode demo",
|
||||
"build": "vite build",
|
||||
"preview": "vite preview",
|
||||
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
|
||||
@@ -25,6 +27,7 @@
|
||||
"@rushstack/eslint-patch": "^1.3.3",
|
||||
"@vitejs/plugin-vue": "^4.4.0",
|
||||
"@vue/eslint-config-prettier": "^8.0.0",
|
||||
"cross-env": "^7.0.3",
|
||||
"eslint": "^8.49.0",
|
||||
"eslint-plugin-vue": "^9.17.0",
|
||||
"prettier": "^3.0.3",
|
||||
|
||||
@@ -48,12 +48,21 @@ export default {
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
demoSiteSet();
|
||||
// 加载站点信息
|
||||
setTimeout(() => {
|
||||
LocalStieConfigUtils.getLatestLocalConfig();
|
||||
}, 100)
|
||||
});
|
||||
|
||||
// 站点演示模式
|
||||
const demoSiteSet = () => {
|
||||
if (import.meta.env.VITE_RUN_MODE === 'demo') {
|
||||
state.account = 'admin';
|
||||
state.passwd = '123456';
|
||||
}
|
||||
}
|
||||
|
||||
// 登录
|
||||
const clickLogin = async () => {
|
||||
const rspe = await request.post('/auth', { username: state.account, passwd: state.passwd });
|
||||
|
||||
@@ -28,11 +28,16 @@ export default defineComponent({
|
||||
});
|
||||
|
||||
const handleChange = async () => {
|
||||
if (import.meta.env.VITE_RUN_MODE === 'demo') {
|
||||
ElMessage({ message: '演示模式不会重置密码', type: 'success' });
|
||||
return
|
||||
}
|
||||
|
||||
let postData = { old_passwd: state.oldPasswd, new_passwd: state.newPasswd };
|
||||
const rsp = await request.post('/settings/setpasswd', postData);
|
||||
if (await rsp.data.code == 200) {
|
||||
let msg = await rsp.data.msg;
|
||||
ElMessage({ message: msg, type: 'success' })
|
||||
ElMessage({ message: msg, type: 'success' });
|
||||
}
|
||||
}
|
||||
return {
|
||||
|
||||
@@ -7,6 +7,7 @@ import { prismjsPlugin } from 'vite-plugin-prismjs'
|
||||
// https://vitejs.dev/config/
|
||||
export default defineConfig({
|
||||
plugins: [
|
||||
|
||||
vue(),
|
||||
prismjsPlugin({
|
||||
languages: 'all', // 语言
|
||||
|
||||
Reference in New Issue
Block a user