|
name: Build Docker Images |
|
on: |
|
workflow_dispatch: |
|
inputs: |
|
tag: |
|
description: "The tag version you want to build" |
|
jobs: |
|
build: |
|
runs-on: ubuntu-latest |
|
permissions: |
|
contents: read |
|
packages: write |
|
env: |
|
REPO_NAME: ${{ github.repository }} |
|
steps: |
|
- name: Convert repo name to lowercase |
|
run: echo "REPO_NAME=$(echo "$REPO_NAME" | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV |
|
- name: Checkout |
|
uses: actions/checkout@v4 |
|
- name: Set up QEMU |
|
uses: docker/setup-qemu-action@v3 |
|
- name: Set up Docker Buildx |
|
uses: docker/setup-buildx-action@v3 |
|
- name: Login to GitHub Container Registry |
|
uses: docker/login-action@v3 |
|
with: |
|
registry: ghcr.io |
|
username: ${{ github.actor }} |
|
password: ${{ secrets.GHCR_TOKEN }} |
|
logout: false |
|
- name: Extract metadata (tags, labels) for Docker |
|
id: meta |
|
uses: docker/metadata-action@v5 |
|
with: |
|
images: ghcr.io/berriai/litellm |
|
- name: Get tag to build |
|
id: tag |
|
run: | |
|
echo "latest=ghcr.io/${{ env.REPO_NAME }}:latest" >> $GITHUB_OUTPUT |
|
if [[ -z "${{ github.event.inputs.tag }}" ]]; then |
|
echo "versioned=ghcr.io/${{ env.REPO_NAME }}:${{ github.ref_name }}" >> $GITHUB_OUTPUT |
|
else |
|
echo "versioned=ghcr.io/${{ env.REPO_NAME }}:${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT |
|
fi |
|
- name: Debug Info |
|
run: | |
|
echo "GHCR_TOKEN=${{ secrets.GHCR_TOKEN }}" |
|
echo "REPO_NAME=${{ env.REPO_NAME }}" |
|
echo "ACTOR=${{ github.actor }}" |
|
- name: Build and push container image to registry |
|
uses: docker/build-push-action@v2 |
|
with: |
|
push: true |
|
tags: ghcr.io/${{ env.REPO_NAME }}:${{ github.sha }} |
|
file: ./Dockerfile |
|
- name: Build and release Docker images |
|
uses: docker/build-push-action@v5 |
|
with: |
|
context: . |
|
platforms: linux/amd64 |
|
tags: | |
|
${{ steps.tag.outputs.latest }} |
|
${{ steps.tag.outputs.versioned }} |
|
labels: ${{ steps.meta.outputs.labels }} |
|
push: true |
|
|
|
|