feat: add ci

This commit is contained in:
2026-05-14 22:09:37 +08:00
parent 49f54a2168
commit 5dbaff904c
4 changed files with 91 additions and 2 deletions

View File

@@ -0,0 +1,35 @@
name: Docker Image CI
on:
push:
branches:
- main
jobs:
build:
runs-on: gitea-runner-group-myplayer
container:
image: ${{ vars.HARBOR_URL }}/candlelight/action_builder:v0.0.1
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: docker login
env:
HARBOR_USERNAME: ${{ secrets.HARBOR_ROBOT }}
HARBOR_PASSWORD: ${{ secrets.HARBOR_ROBOT_SECRET }}
HARBOR_URL: ${{ vars.HARBOR_URL }}
run: docker login ${HARBOR_URL} -u ${HARBOR_USERNAME} -p ${HARBOR_PASSWORD}
- name: Build and push Docker images
env:
HARBOR_URL: ${{ vars.HARBOR_URL }}
TAG: ${{ github.sha }}
REPOSITORY: ${{ github.repository }}
run: |
ROOT_DIR=$(pwd)
IMAGE_NAME="${HARBOR_URL}/testing/$REPOSITORY:${TAG}"
echo "Building image: ${IMAGE_NAME}"
docker build -t ${IMAGE_NAME} .
echo "Pushing image: ${IMAGE_NAME}"
docker push ${IMAGE_NAME}
echo "Successfully pushed: ${IMAGE_NAME}"
docker rmi ${IMAGE_NAME}
echo "cleaned up local image"

34
.gitea/workflows/tag.yaml Normal file
View File

@@ -0,0 +1,34 @@
name: Docker Image CI
on:
push:
tags:
- '*'
jobs:
build:
runs-on: gitea-runner-group-myplayer
container:
image: ${{ vars.HARBOR_URL }}/candlelight/action_builder:v0.0.1
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: docker login
env:
HARBOR_USERNAME: ${{ secrets.HARBOR_ROBOT }}
HARBOR_PASSWORD: ${{ secrets.HARBOR_ROBOT_SECRET }}
HARBOR_URL: ${{ vars.HARBOR_URL }}
run: docker login ${HARBOR_URL} -u ${HARBOR_USERNAME} -p ${HARBOR_PASSWORD}
- name: Build and push Docker images
env:
HARBOR_URL: ${{ vars.HARBOR_URL }}
REPOSITORY: ${{ github.repository }}
run: |
ROOT_DIR=$(pwd)
IMAGE_NAME="${HARBOR_URL}/$REPOSITORY:$GITHUB_REF_NAME"
echo "Building image: ${IMAGE_NAME}"
docker build -t ${IMAGE_NAME} .
echo "Pushing image: ${IMAGE_NAME}"
docker push ${IMAGE_NAME}
echo "Successfully pushed: ${IMAGE_NAME}"
docker rmi ${IMAGE_NAME}
echo "cleaned up local image"

17
Dockerfile Normal file
View File

@@ -0,0 +1,17 @@
FROM registry.merlin.xin/library/node:20-bullseye AS build
WORKDIR /app
COPY package*.json ./
RUN --mount=type=cache,target=/root/.npm \
npm install
COPY . .
RUN npm run build
FROM registry.merlin.xin/mirrors/nginxinc/nginx-unprivileged:stable
COPY --from=build /app/dist /app/dist

View File

@@ -25,7 +25,8 @@
<ul class="memberlist" style="overflow: auto"> <ul class="memberlist" style="overflow: auto">
<li v-for="(item) in members" :key="item.u_id" class="memberlistitem"> <li v-for="(item) in members" :key="item.u_id" class="memberlistitem">
<div class="user-profile"> <div class="user-profile">
<img :src="item.u_avatar" alt="User Avatar" /> <!-- <img :src="item.u_avatar" alt="User Avatar" /> -->
<img :src="defaultAvatar" alt="User Avatar" />
<div :class="['status-dot', item.status]"></div> <div :class="['status-dot', item.status]"></div>
</div> </div>
<el-text style="width: 100%;" truncated>{{ item.u_name }}#{{ item.u_id }}</el-text> <el-text style="width: 100%;" truncated>{{ item.u_name }}#{{ item.u_id }}</el-text>
@@ -67,7 +68,8 @@
<el-col :span="24"> <el-col :span="24">
<div class="updateProfile"> <div class="updateProfile">
<div class="profile"> <div class="profile">
<img :src="avatarPreview" alt="头像"> <!-- <img :src="avatarPreview" alt="头像"> -->
<img :src="defaultAvatar" alt="User Avatar" />
</div> </div>
<el-col :span="12" v-if="role === 1 || role === 0"> <el-col :span="12" v-if="role === 1 || role === 0">
<input type="file" id="avatar" @change="handleAvatarChange" accept="image/*" /> <input type="file" id="avatar" @change="handleAvatarChange" accept="image/*" />
@@ -142,6 +144,7 @@ import {
ROOM_SOCKET_VIDEO_SYNC_EVENT, ROOM_SOCKET_VIDEO_SYNC_EVENT,
sendMessage sendMessage
} from '@/websocket/roomSocket'; } from '@/websocket/roomSocket';
import defaultAvatar from '@/assets/defaultavatar.jpg';
//import audioPlayer from '@/components/audioPlayer.vue'; // 假设你有一个音频播放组件 //import audioPlayer from '@/components/audioPlayer.vue'; // 假设你有一个音频播放组件