Build Docker Images / Push Programs To Server #289
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 | |
- 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: ./other_files/subsystem_docker_stuff/ | |
file: ./other_files/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 | |
Build-Subsystem-Programs: | |
name: Update Subsystem Programs | |
runs-on: ubuntu-latest | |
needs: push_deb11_to_hub | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update Version Name | |
run: | | |
mkdir -p /tmp/artifacts | |
- name: Move everything to working dir | |
run: | | |
curl -k --disable --disable-eprt -s https://tea-cup.midori-ai.xyz/download/helper_app.py > helper_app.py | |
curl -k --disable --disable-eprt -s https://raw.githubusercontent.com/lunamidori5/Midori-AI/master/other_files/model_installer/yaml_edit.py > yaml_edit.py | |
curl -k --disable --disable-eprt -s https://raw.githubusercontent.com/lunamidori5/Midori-AI/master/other_files/midori_ai_manager/huggingface_downloader.py > huggingface_downloader.py | |
- name: Install Dependencies | |
run: | | |
pip install pyinstaller | |
pip install -r ./other_files/model_installer/requirements.txt | |
- name: Download the Uploader | |
run: | | |
python3 helper_app.py git_uploader.py | |
- name: Build Programs | |
run: | | |
pyinstaller --onefile --clean --distpath /tmp/artifacts/ helper_app.py | |
pyinstaller --onefile --clean --distpath /tmp/artifacts/ yaml_edit.py | |
pyinstaller --onefile --clean --distpath /tmp/artifacts/ huggingface_downloader.py | |
- name: Move Exec | |
run: | | |
mv /tmp/artifacts/helper_app midori_ai_downloader | |
mv /tmp/artifacts/yaml_edit yaml_edit | |
mv /tmp/artifacts/huggingface_downloader hf-downloader | |
- name: Upload Raw Python | |
run: | | |
python3 git_uploader.py --type Linux --username "${{ secrets.MIDORI_AI_USERNAME }}" --password "${{ secrets.MIDORI_AI_PASSWORD }}" --twoflogin "${{ secrets.MIDORI_AI_TFA }}" --file "helper_app.py" --filename "helper_app.py" | |
python3 git_uploader.py --type Linux --username "${{ secrets.MIDORI_AI_USERNAME }}" --password "${{ secrets.MIDORI_AI_PASSWORD }}" --twoflogin "${{ secrets.MIDORI_AI_TFA }}" --file "yaml_edit.py" --filename "yaml_edit.py" | |
python3 git_uploader.py --type Linux --username "${{ secrets.MIDORI_AI_USERNAME }}" --password "${{ secrets.MIDORI_AI_PASSWORD }}" --twoflogin "${{ secrets.MIDORI_AI_TFA }}" --file "huggingface_downloader.py" --filename "huggingface_downloader.py" | |
- name: Upload Programs | |
run: | | |
python3 git_uploader.py --type Linux --username "${{ secrets.MIDORI_AI_USERNAME }}" --password "${{ secrets.MIDORI_AI_PASSWORD }}" --twoflogin "${{ secrets.MIDORI_AI_TFA }}" --file "midori_ai_downloader" --filename "midori_ai_downloader" | |
python3 git_uploader.py --type Linux --username "${{ secrets.MIDORI_AI_USERNAME }}" --password "${{ secrets.MIDORI_AI_PASSWORD }}" --twoflogin "${{ secrets.MIDORI_AI_TFA }}" --file "yaml_edit" --filename "yaml_edit" | |
python3 git_uploader.py --type Linux --username "${{ secrets.MIDORI_AI_USERNAME }}" --password "${{ secrets.MIDORI_AI_PASSWORD }}" --twoflogin "${{ secrets.MIDORI_AI_TFA }}" --file "hf-downloader" --filename "hf-downloader" | |
push_subsystem_manager_to_hub: | |
name: Push Subsystem (other os) to Docker Hub | |
runs-on: ubuntu-latest | |
needs: Build-Subsystem-Programs | |
steps: | |
- uses: actions/checkout@v4 | |
- 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/subsystem_manager | |
- name: Build and push Subsystem (other os) Docker Image | |
uses: docker/build-push-action@master | |
with: | |
context: ./other_files/subsystem_docker_stuff/ | |
file: ./other_files/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_cpu_to_hub: | |
name: Push LocalAI CPU to Docker Hub | |
runs-on: self-hosted | |
needs: Build-Subsystem-Programs | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: waycarbon/github-action-container-cleanup@v1 | |
- 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/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: ./other_files/subsystem_docker_stuff/localai/ | |
file: ./other_files/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: ./other_files/subsystem_docker_stuff/localai/ | |
file: ./other_files/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 -f -a | |
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_cpu_to_hub | |
runs-on: self-hosted | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: waycarbon/github-action-container-cleanup@v1 | |
- 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/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: ./other_files/subsystem_docker_stuff/localai/ | |
file: ./other_files/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: ./other_files/subsystem_docker_stuff/localai/ | |
file: ./other_files/subsystem_docker_stuff/localai/localai-subsystem-dockerfile-${{ matrix.gpu_type }}-gpu | |
push: true | |
tags: ${{ steps.sha.outputs.tags }} | |
labels: ${{ steps.sha.outputs.labels }} | |
Cleanupdockerimages: | |
name: Clean up the docker images | |
strategy: | |
matrix: | |
gpu_type: [1, 2, 3, 4, 5, 6] | |
needs: push_gpu_to_hub | |
runs-on: self-hosted | |
steps: | |
- name: Clean up Docker Cache | |
run: | | |
docker image prune -f -a | |
docker system prune -a -f |