1+ name : Build and Push Qwen2-VL-RK3588 Series
2+
3+ on :
4+ push :
5+ branches : [ main, master ]
6+ paths :
7+ - ' src/vlm/**'
8+ - ' docker/RK3588/VLM/Qwen2-VL.dockerfile'
9+ - ' .github/workflows/RK3588-Qwen2-VL.yml'
10+ - ' lib/**'
11+ workflow_dispatch :
12+
13+ env :
14+ REGISTRY : ghcr.io
15+ IMAGE_BASE_NAME : ${{ github.repository_owner }}/RK3588-Qwen2-VL
16+
17+ jobs :
18+ build-and-push :
19+ runs-on : ubuntu-latest
20+ permissions :
21+ contents : read
22+ packages : write
23+
24+ strategy :
25+ fail-fast : false
26+ matrix :
27+ include :
28+ - alias : " 7b-w8a8"
29+ vision_file : " Qwen2_VL_7B_VISION_RK3588.rknn"
30+ vision_url : " https://huggingface.co/JiahaoLi/Qwen2-VL-RK3588/resolve/main/Qwen2_VL_7B_VISION_RK3588.rknn"
31+ llm_file : " Qwen2_VL_7B_LLM_RK3588.rkllm"
32+ llm_url : " https://huggingface.co/JiahaoLi/Qwen2-VL-RK3588/resolve/main/Qwen2-VL-7B_LLM_W8A8_RK3588.rkllm"
33+
34+
35+ - alias : " 2b-w8a8"
36+ vision_file : " Qwen2_VL_2B_VISION_RK3588.rknn"
37+ vision_url : " https://huggingface.co/JiahaoLi/Qwen2-VL-RK3588/resolve/main/Qwen2-VL-2B_VISION_RK3588.rknn"
38+ llm_file : " Qwen2_VL_2B_LLM_RK3588.rkllm"
39+ llm_url : " https://huggingface.co/JiahaoLi/Qwen2-VL-RK3588/resolve/main/Qwen2-VL-2B_LLM_W8A8_RK3588.rkllm"
40+
41+ steps :
42+ - name : Checkout repository
43+ uses : actions/checkout@v4
44+ with :
45+ lfs : true
46+
47+ - name : Force LFS Pull
48+ run : |
49+ git lfs install
50+ git lfs pull
51+
52+ - name : Free Disk Space
53+ uses : jlumbroso/free-disk-space@main
54+ with :
55+ tool-cache : true
56+ android : true
57+ dotnet : true
58+ large-packages : true
59+ docker-images : true
60+
61+ - name : Set up QEMU
62+ uses : docker/setup-qemu-action@v3
63+ with :
64+ platforms : arm64
65+
66+ - name : Set up Docker Buildx
67+ uses : docker/setup-buildx-action@v3
68+
69+ - name : Log in to GHCR
70+ uses : docker/login-action@v3
71+ with :
72+ registry : ${{ env.REGISTRY }}
73+ username : ${{ github.actor }}
74+ password : ${{ secrets.GITHUB_TOKEN }}
75+
76+ - name : Extract metadata
77+ id : meta
78+ uses : docker/metadata-action@v5
79+ with :
80+ images : ${{ env.REGISTRY }}/${{ env.IMAGE_BASE_NAME }}
81+ tags : |
82+ type=raw,value=${{ matrix.alias }}-latest
83+
84+ - name : Build and push
85+ uses : docker/build-push-action@v5
86+ with :
87+ context : .
88+ file : ./docker/RK3588/VLM/Qwen2-VL.dockerfile
89+ # 重要:不指定 target,确保所有指令被执行
90+ push : true
91+ platforms : linux/arm64
92+ provenance : false
93+ build-args : |
94+ LLM_URL=${{ matrix.llm_url }}
95+ LLM_FILE=${{ matrix.llm_file }}
96+ VISION_URL=${{ matrix.vision_url }}
97+ VISION_FILE=${{ matrix.vision_file }}
98+ tags : ${{ steps.meta.outputs.tags }}
99+ labels : ${{ steps.meta.outputs.labels }}
100+ cache-from : type=gha
101+ cache-to : type=gha,mode=max
0 commit comments