mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-02 03:55:55 +00:00
ci: 添加构建 ci
This commit is contained in:
23
.github/workflows/build-dev-image.yaml
vendored
Normal file
23
.github/workflows/build-dev-image.yaml
vendored
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
name: Build Dev Image
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-dev-image:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Generate Tag
|
||||||
|
run: |
|
||||||
|
# 获取分支名称,把/替换为-
|
||||||
|
echo ${{ github.ref }} | sed 's/\//-/g'
|
||||||
|
echo ::set-output name=tag::$(echo ${{ github.ref }} | sed 's/\//-/g')
|
||||||
|
- name: Login to Registry
|
||||||
|
run: docker login --username=${{ secrets.DOCKER_USERNAME }} --password ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
- name: Build Docker Image
|
||||||
|
run: |
|
||||||
|
docker buildx create --name mybuilder --use
|
||||||
|
docker build -t rockchin/langbot:${{ steps.generate-tag.outputs.tag }} . --push
|
||||||
6
.github/workflows/build-docker-image.yml
vendored
6
.github/workflows/build-docker-image.yml
vendored
@@ -19,12 +19,6 @@ jobs:
|
|||||||
export GITHUB_REF=${{ github.ref }}
|
export GITHUB_REF=${{ github.ref }}
|
||||||
echo $GITHUB_REF
|
echo $GITHUB_REF
|
||||||
fi
|
fi
|
||||||
# - name: Check GITHUB_REF env
|
|
||||||
# run: echo $GITHUB_REF
|
|
||||||
# - name: Get version # 在 GitHub Actions 运行环境
|
|
||||||
# id: get_version
|
|
||||||
# if: (startsWith(env.GITHUB_REF, 'refs/tags/')||startsWith(github.ref, 'refs/tags/')) && startsWith(github.repository, 'RockChinQ/QChatGPT')
|
|
||||||
# run: export GITHUB_REF=${GITHUB_REF/refs\/tags\//}
|
|
||||||
- name: Check version
|
- name: Check version
|
||||||
id: check_version
|
id: check_version
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
11
Dockerfile
11
Dockerfile
@@ -1,8 +1,19 @@
|
|||||||
|
FROM node:22-alpine AS node
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY web ./web
|
||||||
|
|
||||||
|
RUN cd web && npm install && npm run build
|
||||||
|
|
||||||
FROM python:3.10.13-slim
|
FROM python:3.10.13-slim
|
||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
|
COPY --from=node /app/web/dist ./web/dist
|
||||||
|
|
||||||
RUN apt update \
|
RUN apt update \
|
||||||
&& apt install gcc -y \
|
&& apt install gcc -y \
|
||||||
&& python -m pip install -r requirements.txt \
|
&& python -m pip install -r requirements.txt \
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
|
import os
|
||||||
|
|
||||||
import quart
|
import quart
|
||||||
import quart_cors
|
import quart_cors
|
||||||
@@ -49,3 +50,13 @@ class HTTPController:
|
|||||||
for g in group.preregistered_groups:
|
for g in group.preregistered_groups:
|
||||||
ginst = g(self.ap, self.quart_app)
|
ginst = g(self.ap, self.quart_app)
|
||||||
await ginst.initialize()
|
await ginst.initialize()
|
||||||
|
|
||||||
|
frontend_path = "web/dist"
|
||||||
|
|
||||||
|
@self.quart_app.route("/")
|
||||||
|
async def index():
|
||||||
|
return await quart.send_from_directory(frontend_path, "index.html")
|
||||||
|
|
||||||
|
@self.quart_app.route("/<path:path>")
|
||||||
|
async def static_file(path: str):
|
||||||
|
return await quart.send_from_directory(frontend_path, path)
|
||||||
|
|||||||
Reference in New Issue
Block a user