Merge pull request #93 from sijinhui/dev

merge Dev
This commit is contained in:
sijinhui 2024-05-13 15:39:27 +08:00 committed by GitHub
commit 2a202aab31
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 55 additions and 47 deletions

View File

@ -16,7 +16,7 @@ jobs:
with: with:
ref: 'dev' ref: 'dev'
clean: false clean: false
#github-server-url: 'https://gh.siji.ci' github-server-url: 'https://gh.siji.ci'
- name: build and deploy to Docker Hub - name: build and deploy to Docker Hub
run: | run: |
echo ${{ secrets.ALY_DOCKER_PASSWORD }} | docker login registry.cn-hangzhou.aliyuncs.com -u ${{ secrets.ALY_DOCKER_USERNAME }} --password-stdin echo ${{ secrets.ALY_DOCKER_PASSWORD }} | docker login registry.cn-hangzhou.aliyuncs.com -u ${{ secrets.ALY_DOCKER_USERNAME }} --password-stdin
@ -46,7 +46,7 @@ jobs:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Sync repository to test server - name: Sync repository to test server
run: | run: |
sudo apt-get update && sudo apt-get install -y rsync #sudo apt-get update && sudo apt-get install -y rsync
ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }} root@${{ secrets.UIYJ_SSH_IP }} 'mkdir -p /data/test/ChatGPT-Next-Web' ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }} root@${{ secrets.UIYJ_SSH_IP }} 'mkdir -p /data/test/ChatGPT-Next-Web'
/usr/bin/rsync -az -e 'ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }}' --delete $GITHUB_WORKSPACE/ root@${{ secrets.UIYJ_SSH_IP }}:/data/test/ChatGPT-Next-Web /usr/bin/rsync -az -e 'ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }}' --delete $GITHUB_WORKSPACE/ root@${{ secrets.UIYJ_SSH_IP }}:/data/test/ChatGPT-Next-Web
- name: deploy-to-tx - name: deploy-to-tx
@ -63,13 +63,14 @@ jobs:
mkdir -p /data/test/ChatGPT-Next-Web mkdir -p /data/test/ChatGPT-Next-Web
cd /data/test/ChatGPT-Next-Web cd /data/test/ChatGPT-Next-Web
echo "${{ secrets.DOCKER_ENV }}" > .env echo "${{ secrets.DOCKER_ENV }}" > .env
echo "PORT=23001" > .env
# 测试分支, # 测试分支,
echo "COMPOSE_PROJECT_NAME=test-chatgpt-web" >> .env echo "COMPOSE_PROJECT_NAME=test-chatgpt-web" >> .env
sed -i 's@image: registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web@image: registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:test@g' docker-compose.yml sed -i 's@image: registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web@image: registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:test@g' docker-compose.yml
echo ${{ secrets.ALY_DOCKER_PASSWORD }} | docker login registry.cn-hangzhou.aliyuncs.com -u ${{ secrets.ALY_DOCKER_USERNAME }} --password-stdin echo ${{ secrets.ALY_DOCKER_PASSWORD }} | docker login registry.cn-hangzhou.aliyuncs.com -u ${{ secrets.ALY_DOCKER_USERNAME }} --password-stdin
sed -i 's|23000:|23001:|g' docker-compose.yml #sed -i 's|23000:|23001:|g' docker-compose.yml
sed -i 's|container_name:|#container_name:|g' docker-compose.yml sed -i 's|container_name:|#container_name:|g' docker-compose.yml
docker network ls | grep -qw chatgpt-ns || docker network create chatgpt-ns #docker network ls | grep -qw chatgpt-ns || docker network create chatgpt-ns
docker-compose pull && docker-compose up -d docker-compose pull && docker-compose up -d
yes | docker image prune yes | docker image prune
rm -rf /www/server/nginx/proxy_cache_dir/* || true rm -rf /www/server/nginx/proxy_cache_dir/* || true

View File

@ -1,9 +1,9 @@
name: PRO DEPLOY TO TY name: PRO DEPLOY TO TY
on: on:
workflow_dispatch: workflow_dispatch:
# push: push:
# branches: branches:
# - main - main
# paths: # paths:
# - 'app/**' # - 'app/**'
# - 'public/**' # - 'public/**'
@ -43,40 +43,40 @@ jobs:
with: with:
clean: true clean: true
github-server-url: 'https://gh.siji.ci' github-server-url: 'https://gh.siji.ci'
deploy-nm: # deploy-nm:
name: 部署到内蒙服务器 # name: 部署到内蒙服务器
needs: download-repo # needs: download-repo
runs-on: ubuntu-latest # runs-on: ubuntu-latest
steps: # steps:
- name: Set up SSH key # - name: Set up SSH key
uses: webfactory/ssh-agent@v0.9.0 # uses: webfactory/ssh-agent@v0.9.0
with: # with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} # ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Sync repository to nm # - name: Sync repository to nm
run: | # run: |
ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }} root@${{ secrets.NM_SSH_IP }} 'mkdir -p /data/ChatGPT-Next-Web' # ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }} root@${{ secrets.NM_SSH_IP }} 'mkdir -p /data/ChatGPT-Next-Web'
rsync -az -e 'ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }}' --delete $GITHUB_WORKSPACE/ root@${{ secrets.NM_SSH_IP }}:/data/ChatGPT-Next-Web/ # rsync -az -e 'ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }}' --delete $GITHUB_WORKSPACE/ root@${{ secrets.NM_SSH_IP }}:/data/ChatGPT-Next-Web/
- name: deploy-to-nm # - name: deploy-to-nm
uses: appleboy/ssh-action@master # uses: appleboy/ssh-action@master
env: # env:
SERVER_WORKDIR: ${{ secrets.SERVER_WORKDIR }} #传递工作目录变量 # SERVER_WORKDIR: ${{ secrets.SERVER_WORKDIR }} #传递工作目录变量
with: # with:
host: ${{ secrets.NM_SSH_IP }} #服务器地址 # host: ${{ secrets.NM_SSH_IP }} #服务器地址
username: root #用户名 # username: root #用户名
port: ${{ secrets.SSH_PORT }} # port: ${{ secrets.SSH_PORT }}
key: ${{ secrets.SSH_PRIVATE_KEY }} #私钥 安全问题一定都以变量的方式传递!!! # key: ${{ secrets.SSH_PRIVATE_KEY }} #私钥 安全问题一定都以变量的方式传递!!!
envs: SERVER_WORKDIR,ALY_DOCKER_PASSWORD,ALY_DOCKER_USERNAME,DOCKER_ENV #使用工作目录变量 # envs: SERVER_WORKDIR,ALY_DOCKER_PASSWORD,ALY_DOCKER_USERNAME,DOCKER_ENV #使用工作目录变量
script: | # script: |
cd $SERVER_WORKDIR #进入到工作目录 # cd $SERVER_WORKDIR #进入到工作目录
echo "${{ secrets.DOCKER_ENV }}" > .env # echo "${{ secrets.DOCKER_ENV }}" > .env
echo ${{ secrets.ALY_DOCKER_PASSWORD }} | docker login registry.cn-hangzhou.aliyuncs.com -u ${{ secrets.ALY_DOCKER_USERNAME }} --password-stdin # echo ${{ secrets.ALY_DOCKER_PASSWORD }} | docker login registry.cn-hangzhou.aliyuncs.com -u ${{ secrets.ALY_DOCKER_USERNAME }} --password-stdin
docker network ls | grep -qw chatgpt-ns || docker network create chatgpt-ns # docker network ls | grep -qw chatgpt-ns || docker network create chatgpt-ns
docker-compose pull && docker-compose up -d # docker-compose pull && docker-compose up -d
yes | docker image prune # yes | docker image prune
rm -rf /www/server/nginx/proxy_cache_dir/* || true # rm -rf /www/server/nginx/proxy_cache_dir/* || true
rm -rf /www/server/nginx/proxy_temp_dir/* || true # rm -rf /www/server/nginx/proxy_temp_dir/* || true
sleep 2 # sleep 2
#tccli cdn PurgePathCache --cli-unfold-argument --Paths '${{ secrets.WEB_URL }}' --FlushType delete # #tccli cdn PurgePathCache --cli-unfold-argument --Paths '${{ secrets.WEB_URL }}' --FlushType delete
deploy-bk-uiyj: deploy-bk-uiyj:
name: 部署到十堰服务器 name: 部署到十堰服务器
@ -90,7 +90,7 @@ jobs:
- name: Sync repository to uiyj - name: Sync repository to uiyj
run: | run: |
ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }} root@${{ secrets.UIYJ_SSH_IP }} 'mkdir -p /data/ChatGPT-Next-Web' ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }} root@${{ secrets.UIYJ_SSH_IP }} 'mkdir -p /data/ChatGPT-Next-Web'
rsync -az -e 'ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }}' --delete $GITHUB_WORKSPACE/ root@${{ secrets.UIYJ_SSH_IP }}:/data/ChatGPT-Next-Web/ /usr/bin/rsync -az -e 'ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }}' --delete $GITHUB_WORKSPACE/ root@${{ secrets.UIYJ_SSH_IP }}:/data/ChatGPT-Next-Web/
- name: deploy-to-uiyj - name: deploy-to-uiyj
uses: appleboy/ssh-action@master uses: appleboy/ssh-action@master
env: env:

View File

@ -97,11 +97,18 @@ export const useSyncStore = createPersistStore(
const client = this.getClient(); const client = this.getClient();
try { try {
const remoteState = JSON.parse( const remoteState = await client.get(config.username);
if (!remoteState || remoteState === "") {
await client.set(config.username, JSON.stringify(localState));
console.log("[Sync] Remote state is empty, using local state instead.");
return
} else {
const parsedRemoteState = JSON.parse(
await client.get(config.username), await client.get(config.username),
) as AppState; ) as AppState;
mergeAppState(localState, remoteState); mergeAppState(localState, parsedRemoteState);
setLocalAppState(localState); setLocalAppState(localState);
}
} catch (e) { } catch (e) {
console.log("[Sync] failed to get remote state", e); console.log("[Sync] failed to get remote state", e);
throw e; throw e;