Skip to content

fix: pass bot_instance to inline_execute for all price services #1405

fix: pass bot_instance to inline_execute for all price services

fix: pass bot_instance to inline_execute for all price services #1405

# 工作流程名称
name: Docker Image CI
# 触发条件
on:
push:
tags:
- 'v*.*.*'
branches:
- 'mydev' # 增加了这一行
- 'main' # 增加了这一行
- 'dev' # 增加了这一行
workflow_dispatch:
# 定义一个 job
jobs:
build-and-push:
# 运行在最新的 ubuntu 系统上
runs-on: ubuntu-latest
# 授予 job 的权限
permissions:
contents: read
packages: write
# job 的执行步骤
steps:
# 第一步:拉取代码
- name: Check out the repo
uses: actions/checkout@v4
# 第二步:提取版本号,并判断是否为正式发布
- name: Extract version and release status
id: extract_version
run: |
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/v}
echo "IS_RELEASE=true" >> $GITHUB_ENV
else
VERSION="dev-$(date +'%Y%m%d-%H%M%S')"
echo "IS_RELEASE=false" >> $GITHUB_ENV
fi
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "Version is: $VERSION"
# 第三步:动态生成 Docker 镜像的标签 (已更新为总是包含 latest)
- name: Generate Docker tags
id: meta
run: |
# 强制将所有相关名称转为小写,以符合 Docker 命名规范
DOCKERHUB_USER_LOWER=$(echo "${{ secrets.DOCKERHUB_USERNAME }}" | tr '[:upper:]' '[:lower:]')
REPO_NAME_LOWER=$(echo "${{ github.event.repository.name }}" | tr '[:upper:]' '[:lower:]')
DOCKER_IMAGE_DOCKERHUB="$DOCKERHUB_USER_LOWER/$REPO_NAME_LOWER"
GHCR_REPO_LOWER=$(echo "${{ github.repository }}" | tr '[:upper:]' '[:lower:]')
DOCKER_IMAGE_GHCR="ghcr.io/$GHCR_REPO_LOWER"
# 新增的智能判断逻辑 (只推送到GHCR)
if [[ $GITHUB_REF == refs/tags/* ]]; then
# 如果是发布 (打tag),就使用 latest 和版本号标签
echo "是正式发布,使用 latest 和版本号标签: ${{ env.VERSION }}"
TAGS="$DOCKER_IMAGE_GHCR:latest,$DOCKER_IMAGE_GHCR:${{ env.VERSION }}"
else
# 如果是推送到分支 (比如 mydev),就使用分支名作为标签
BRANCH_NAME=${GITHUB_REF#refs/heads/}
echo "是开发分支推送,使用分支名 '${BRANCH_NAME}' 作为标签"
TAGS="$DOCKER_IMAGE_GHCR:${BRANCH_NAME}"
fi
echo "tags=${TAGS}" >> $GITHUB_OUTPUT
echo "Generated tags: ${TAGS}"
# 第四步:设置 QEMU,用于多平台构建
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
# 第五步:登录到 Docker Hub (在 buildx 之前登录,避免 rate limit)
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# 第六步:设置 Docker Buildx,新一代的构建工具
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
driver-opts: |
image=moby/buildkit:latest
network=host
# 第七步:登录到 GitHub Container Registry (GHCR)
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# 第八步:构建并推送 Docker 镜像
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
platforms: linux/amd64,linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max