Skip to content

feat: Automated Preset Docker Image Building #17

feat: Automated Preset Docker Image Building

feat: Automated Preset Docker Image Building #17

name: Build and Push Preset Models
on:
pull_request:
branches:
- main
push:
branches:
- main
paths:
- 'pkg/presets/falcon/**'
- 'pkg/presets/llama-2/**'
- 'pkg/presets/llama-2-chat/**'
workflow_dispatch:
inputs:
release:
description: 'Release (yes/no)'
required: true
default: 'no'
image_tag:
description: 'Image Tag'
required: false
permissions:
id-token: write
contents: read
jobs:
setup:
runs-on: ubuntu-20.04
outputs:
image_tag: ${{ steps.set_tag.outputs.image_tag }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- uses: azure/login@v1
with:
client-id: ${{ secrets.AZURE_KDM_PRESET_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
allow-no-subscriptions: true
- name: Install Azure CLI latest
run: |
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
az account set --subscription ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Set Image Tag
id: set_tag
run: |
if [[ "${{ github.event_name }}" == "workflow_dispatch" && -n "${{ github.event.inputs.image_tag }}" ]]; then
echo "::set-output name=image_tag::${{ github.event.inputs.image_tag }}"
else
echo "::set-output name=image_tag::$(git rev-parse --short HEAD)"
fi
- name: 'Login to ACR'
run: az acr login --name aimodelsregistry
falcon:
needs: setup
runs-on: ubuntu-20.04
if: contains(github.event.commits[0].modified, 'pkg/presets/falcon/')
steps:
- name: Build and push Falcon model
run: |
cd docker/presets/falcon
az acr build -t aimodelsregistry.azurecr.io/falcon:${{ needs.setup.outputs.image_tag }} -r aimodelsregistry .
llama-2-7b:
needs: setup
runs-on: ubuntu-20.04
if: contains(github.event.commits[0].modified, 'pkg/presets/llama-2/')
steps:
- name: Build and push Llama model
run: |
az acr build --build-arg LLAMA_VERSION=llama-2-7b --build-arg SRC_DIR=pkg/presets/llama-2 -t aimodelsregistry.azurecr.io/llama-2-7b:${{ needs.setup.outputs.image_tag }} -r aimodelsregistry .
llama-2-13b:
needs: setup
runs-on: ubuntu-20.04
if: contains(github.event.commits[0].modified, 'pkg/presets/llama-2/')
steps:
- name: Build and push Llama model
run: |
az acr build --build-arg LLAMA_VERSION=llama-2-13b --build-arg SRC_DIR=pkg/presets/llama-2 -t aimodelsregistry.azurecr.io/llama-2-13b:${{ needs.setup.outputs.image_tag }} -r aimodelsregistry .
llama-2-70b:
needs: setup
runs-on: ubuntu-20.04
if: contains(github.event.commits[0].modified, 'pkg/presets/llama-2/')
steps:
- name: Build and push Llama model
run: |
az acr build --build-arg LLAMA_VERSION=llama-2-70b --build-arg SRC_DIR=pkg/presets/llama-2 -t aimodelsregistry.azurecr.io/llama-2-70b:${{ needs.setup.outputs.image_tag }} -r aimodelsregistry .
llama-2-7b-chat:
needs: setup
runs-on: ubuntu-20.04
if: contains(github.event.commits[0].modified, 'pkg/presets/llama-2-chat/')
steps:
- name: Build and push Llama chat model
run: |
az acr build --build-arg LLAMA_VERSION=llama-2-7b-chat --build-arg SRC_DIR=pkg/presets/llama-2-chat -t aimodelsregistry.azurecr.io/llama-2-7b-chat:${{ needs.setup.outputs.image_tag }} -r aimodelsregistry .
llama-2-13b-chat:
needs: setup
runs-on: ubuntu-20.04
if: contains(github.event.commits[0].modified, 'pkg/presets/llama-2-chat/')
steps:
- name: Build and push Llama chat model
run: |
az acr build --build-arg LLAMA_VERSION=llama-2-13b-chat --build-arg SRC_DIR=pkg/presets/llama-2-chat -t aimodelsregistry.azurecr.io/llama-2-13b-chat:${{ needs.setup.outputs.image_tag }} -r aimodelsregistry .
llama-2-70b-chat:
needs: setup
runs-on: ubuntu-20.04
if: contains(github.event.commits[0].modified, 'pkg/presets/llama-2-chat/')
steps:
- name: Build and push Llama chat model
run: |
az acr build --build-arg LLAMA_VERSION=llama-2-70b-chat --build-arg SRC_DIR=pkg/presets/llama-2-chat -t aimodelsregistry.azurecr.io/llama-2-70b-chat:${{ needs.setup.outputs.image_tag }} -r aimodelsregistry .