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