CI: Support debug branch and improve Docker tagging/caching (#55)
* ci docker * ci * ci
This commit is contained in:
34
.github/workflows/docker-image.yml
vendored
34
.github/workflows/docker-image.yml
vendored
@@ -3,10 +3,11 @@ name: Docker Build and Push
|
|||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches:
|
branches:
|
||||||
- main # 推送到main分支时触发
|
- main
|
||||||
|
- debug # 新增 debug 分支触发
|
||||||
tags:
|
tags:
|
||||||
- 'v*' # 推送v开头的tag时触发(例如v1.0.0)
|
- 'v*'
|
||||||
workflow_dispatch: # 允许手动触发
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-and-push:
|
build-and-push:
|
||||||
@@ -24,15 +25,24 @@ jobs:
|
|||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Determine Image Tags
|
||||||
|
id: tags
|
||||||
|
run: |
|
||||||
|
if [[ "${{ github.ref }}" == refs/tags/* ]]; then
|
||||||
|
echo "tags=${{ secrets.DOCKERHUB_USERNAME }}/maimbot:${{ github.ref_name }},${{ secrets.DOCKERHUB_USERNAME }}/maimbot:latest" >> $GITHUB_OUTPUT
|
||||||
|
elif [ "${{ github.ref }}" == "refs/heads/main" ]; then
|
||||||
|
echo "tags=${{ secrets.DOCKERHUB_USERNAME }}/maimbot:main,${{ secrets.DOCKERHUB_USERNAME }}/maimbot:latest" >> $GITHUB_OUTPUT
|
||||||
|
elif [ "${{ github.ref }}" == "refs/heads/debug" ]; then
|
||||||
|
echo "tags=${{ secrets.DOCKERHUB_USERNAME }}/maimbot:debug" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
- name: Build and Push Docker Image
|
- name: Build and Push Docker Image
|
||||||
uses: docker/build-push-action@v5
|
uses: docker/build-push-action@v5
|
||||||
with:
|
with:
|
||||||
context: . # Docker构建上下文路径
|
context: .
|
||||||
file: ./Dockerfile # Dockerfile路径
|
file: ./Dockerfile
|
||||||
platforms: linux/amd64,linux/arm64 # 支持arm架构
|
platforms: linux/amd64,linux/arm64
|
||||||
tags: |
|
tags: ${{ steps.tags.outputs.tags }}
|
||||||
${{ secrets.DOCKERHUB_USERNAME }}/maimbot:${{ github.ref_name }}
|
push: true
|
||||||
${{ secrets.DOCKERHUB_USERNAME }}/maimbot:latest
|
cache-from: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/maimbot:buildcache
|
||||||
push: true
|
cache-to: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/maimbot:buildcache,mode=max
|
||||||
cache-from: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/maimbot:latest
|
|
||||||
cache-to: type=inline
|
|
||||||
Reference in New Issue
Block a user