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",
|
"@rushstack/eslint-patch": "^1.3.3",
|
||||||
"@vitejs/plugin-vue": "^4.4.0",
|
"@vitejs/plugin-vue": "^4.4.0",
|
||||||
"@vue/eslint-config-prettier": "^8.0.0",
|
"@vue/eslint-config-prettier": "^8.0.0",
|
||||||
|
"cross-env": "^7.0.3",
|
||||||
"eslint": "^8.49.0",
|
"eslint": "^8.49.0",
|
||||||
"eslint-plugin-vue": "^9.17.0",
|
"eslint-plugin-vue": "^9.17.0",
|
||||||
"prettier": "^3.0.3",
|
"prettier": "^3.0.3",
|
||||||
@@ -1623,6 +1624,24 @@
|
|||||||
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
|
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
|
||||||
"dev": true
|
"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": {
|
"node_modules/cross-spawn": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||||
@@ -4843,6 +4862,15 @@
|
|||||||
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
|
"integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
|
||||||
"dev": true
|
"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": {
|
"cross-spawn": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
|
||||||
|
|||||||
@@ -4,6 +4,8 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
"demo": "vite --mode demo",
|
||||||
|
"build:demo": "vite build --mode demo",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
"preview": "vite preview",
|
"preview": "vite preview",
|
||||||
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
|
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs --fix --ignore-path .gitignore",
|
||||||
@@ -25,6 +27,7 @@
|
|||||||
"@rushstack/eslint-patch": "^1.3.3",
|
"@rushstack/eslint-patch": "^1.3.3",
|
||||||
"@vitejs/plugin-vue": "^4.4.0",
|
"@vitejs/plugin-vue": "^4.4.0",
|
||||||
"@vue/eslint-config-prettier": "^8.0.0",
|
"@vue/eslint-config-prettier": "^8.0.0",
|
||||||
|
"cross-env": "^7.0.3",
|
||||||
"eslint": "^8.49.0",
|
"eslint": "^8.49.0",
|
||||||
"eslint-plugin-vue": "^9.17.0",
|
"eslint-plugin-vue": "^9.17.0",
|
||||||
"prettier": "^3.0.3",
|
"prettier": "^3.0.3",
|
||||||
|
|||||||
@@ -48,12 +48,21 @@ export default {
|
|||||||
});
|
});
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
demoSiteSet();
|
||||||
// 加载站点信息
|
// 加载站点信息
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
LocalStieConfigUtils.getLatestLocalConfig();
|
LocalStieConfigUtils.getLatestLocalConfig();
|
||||||
}, 100)
|
}, 100)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 站点演示模式
|
||||||
|
const demoSiteSet = () => {
|
||||||
|
if (import.meta.env.VITE_RUN_MODE === 'demo') {
|
||||||
|
state.account = 'admin';
|
||||||
|
state.passwd = '123456';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 登录
|
// 登录
|
||||||
const clickLogin = async () => {
|
const clickLogin = async () => {
|
||||||
const rspe = await request.post('/auth', { username: state.account, passwd: state.passwd });
|
const rspe = await request.post('/auth', { username: state.account, passwd: state.passwd });
|
||||||
|
|||||||
@@ -28,11 +28,16 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
|
|
||||||
const handleChange = async () => {
|
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 };
|
let postData = { old_passwd: state.oldPasswd, new_passwd: state.newPasswd };
|
||||||
const rsp = await request.post('/settings/setpasswd', postData);
|
const rsp = await request.post('/settings/setpasswd', postData);
|
||||||
if (await rsp.data.code == 200) {
|
if (await rsp.data.code == 200) {
|
||||||
let msg = await rsp.data.msg;
|
let msg = await rsp.data.msg;
|
||||||
ElMessage({ message: msg, type: 'success' })
|
ElMessage({ message: msg, type: 'success' });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { prismjsPlugin } from 'vite-plugin-prismjs'
|
|||||||
// https://vitejs.dev/config/
|
// https://vitejs.dev/config/
|
||||||
export default defineConfig({
|
export default defineConfig({
|
||||||
plugins: [
|
plugins: [
|
||||||
|
|
||||||
vue(),
|
vue(),
|
||||||
prismjsPlugin({
|
prismjsPlugin({
|
||||||
languages: 'all', // 语言
|
languages: 'all', // 语言
|
||||||
|
|||||||
Reference in New Issue
Block a user