Build Docker Images / Push Programs To Server #619
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Docker Images / Push Programs To Server | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: '0 */16 * * *' | |
jobs: | |
push_deb11_to_hub: | |
name: Push Debian 11 to Docker Hub | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Log in to Docker Hub | |
uses: docker/login-action@master | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@master | |
with: | |
images: lunamidori5/linux_model_deb_11 | |
- name: Build and push Debian 11 Docker Image | |
uses: docker/build-push-action@master | |
with: | |
context: ./Subsystem-Manager/subsystem_docker_stuff/ | |
file: ./Subsystem-Manager/subsystem_docker_stuff/midori-ai-pip-deb11-dockerfile | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Clean up Docker Cache | |
run: | | |
docker image prune -f | |
push_subsystem_manager_to_hub: | |
name: Push Subsystem (Ubuntu Rolling) to Docker Hub | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Log in to Docker Hub | |
uses: docker/login-action@master | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
logout: false | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@master | |
with: | |
images: lunamidori5/subsystem_manager | |
- name: Build and push Subsystem (other os) Docker Image | |
uses: docker/build-push-action@master | |
with: | |
context: ./Subsystem-Manager/subsystem_docker_stuff/ | |
file: ./Subsystem-Manager/subsystem_docker_stuff/midori-ai-subsystem-manager-dockerfile | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Clean up Docker Cache | |
run: | | |
docker image prune -f | |
push_pixelarch_subsystem_topaz_to_hub: | |
name: Push Subsystem (PixelArch Rolling) to Docker Hub | |
runs-on: ubuntu-latest | |
needs: push_subsystem_manager_to_hub | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Log in to Docker Hub | |
uses: docker/login-action@master | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
logout: false | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@master | |
with: | |
images: lunamidori5/pixelarch | |
tags: | | |
type=raw,value=subsystem | |
- name: Build and push PixelArch OS (Subsystem Manager) Docker Image | |
uses: docker/build-push-action@master | |
with: | |
context: ./Subsystem-Manager/subsystem_docker_stuff/ | |
file: ./Subsystem-Manager/subsystem_docker_stuff/midori-ai-subsystem-manager-pixelarch-dockerfile | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
push_cpu_to_hub: | |
name: Push LocalAI CPU to Docker Hub | |
runs-on: self-hosted | |
needs: push_subsystem_manager_to_hub | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Log in to Docker Hub | |
uses: docker/login-action@master | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
logout: false | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@master | |
with: | |
images: lunamidori5/midori_ai_subsystem_localai_cpu | |
- name: Make Ver Tags (tags, labels) for Docker | |
id: sha | |
uses: docker/metadata-action@master | |
with: | |
images: lunamidori5/midori_ai_subsystem_localai_cpu | |
tags: | | |
type=sha,enable=true,priority=100,prefix={{date 'YYYYMMDD-HHmmss' tz='Asia/Tokyo'}}-sha-,suffix=,format=short | |
- name: Build and push CPU LocalAI Docker image | |
uses: docker/build-push-action@master | |
with: | |
context: ./Subsystem-Manager/subsystem_docker_stuff/localai/ | |
file: ./Subsystem-Manager/subsystem_docker_stuff/localai/localai-subsystem-dockerfile-cpu | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Build and push CPU LocalAI Docker image | |
uses: docker/build-push-action@master | |
with: | |
context: ./Subsystem-Manager/subsystem_docker_stuff/localai/ | |
file: ./Subsystem-Manager/subsystem_docker_stuff/localai/localai-subsystem-dockerfile-cpu | |
push: true | |
tags: ${{ steps.sha.outputs.tags }} | |
labels: ${{ steps.sha.outputs.labels }} | |
- name: Clean up Docker Cache | |
run: | | |
docker image prune -a -f | |
docker system prune -a -f | |
push_gpu_to_hub: | |
name: Push LocalAI GPUs to Docker Hub | |
strategy: | |
matrix: | |
gpu_type: [intelf16, intelf32, hipblas, nvidia] | |
needs: push_subsystem_manager_to_hub | |
runs-on: self-hosted | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Log in to Docker Hub | |
uses: docker/login-action@master | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
logout: false | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@master | |
with: | |
images: lunamidori5/midori_ai_subsystem_localai_${{ matrix.gpu_type }}_gpu | |
- name: Make Ver Tags (tags, labels) for Docker | |
id: sha | |
uses: docker/metadata-action@master | |
with: | |
images: lunamidori5/midori_ai_subsystem_localai_${{ matrix.gpu_type }}_gpu | |
tags: | | |
type=sha,enable=true,priority=100,prefix={{date 'YYYYMMDD-HHmmss' tz='Asia/Tokyo'}}-sha-,suffix=,format=short | |
- name: Build and push GPU LocalAI Docker image | |
uses: docker/build-push-action@master | |
with: | |
context: ./Subsystem-Manager/subsystem_docker_stuff/localai/ | |
file: ./Subsystem-Manager/subsystem_docker_stuff/localai/localai-subsystem-dockerfile-${{ matrix.gpu_type }}-gpu | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Build and push GPU LocalAI Docker image | |
uses: docker/build-push-action@master | |
with: | |
context: ./Subsystem-Manager/subsystem_docker_stuff/localai/ | |
file: ./Subsystem-Manager/subsystem_docker_stuff/localai/localai-subsystem-dockerfile-${{ matrix.gpu_type }}-gpu | |
push: true | |
tags: ${{ steps.sha.outputs.tags }} | |
labels: ${{ steps.sha.outputs.labels }} | |
clean_docker_mess: | |
name: Clean up Docker Cache | |
strategy: | |
matrix: | |
gpu_type: [1, 2, 3] | |
for_each: [1, 2, 3] | |
needs: push_gpu_to_hub | |
runs-on: self-hosted | |
steps: | |
- name: Clean up Docker Cache | |
run: | | |
nohup docker image prune -a -f & | |
nohup docker system prune -a -f & |