diff --git a/.github/workflows/boltz.yaml b/.github/workflows/boltz.yaml index 0c36302..3d4b6eb 100644 --- a/.github/workflows/boltz.yaml +++ b/.github/workflows/boltz.yaml @@ -4,12 +4,13 @@ on: workflow_dispatch: inputs: image_tag: - description: "Tag for the image, e.g. boltz makes boltz-cpu, boltz-cuda118, boltz-cuda121, and boltz-cuda124" + description: "Tag for the image" required: false - default: "boltz" + default: "latest" env: REGISTRY: ghcr.io + IMAGE_NAME: boltz jobs: build-boltz-cpu: @@ -18,28 +19,40 @@ jobs: contents: read packages: write steps: - - name: Checkout code + - name: Checkout repository uses: actions/checkout@v4 - - name: Convert repository name to lowercase - run: echo "IMAGE_NAME=$(echo ${GITHUB_REPOSITORY} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: arm64,amd64 - - name: Log in to the container registry + - name: Login to the container registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract image metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.REGISTRY }}/${{ github.actor }}/${{ env.IMAGE_NAME }} + flavor: latest=auto + tags: type=raw,value=latest,enable={{is_default_branch}} + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push Docker image uses: docker/build-push-action@v6 with: - context: boltz/python3.11-slim push: true - tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.inputs.image_tag }}-cpu + platforms: arm64,amd64 + context: ./${{ env.IMAGE_NAME }}/python3.11-slim + tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.inputs.image_tag }} build-args: BASE_IMAGE=python:3.11-slim build-boltz-cuda118: runs-on: ubuntu-latest @@ -47,27 +60,39 @@ jobs: contents: read packages: write steps: - - name: Checkout code + - name: Checkout repository uses: actions/checkout@v4 - - name: Convert repository name to lowercase - run: echo "IMAGE_NAME=$(echo ${GITHUB_REPOSITORY} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: arm64,amd64 - - name: Log in to the container registry + - name: Login to the container registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract image metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.REGISTRY }}/${{ github.actor }}/${{ env.IMAGE_NAME }} + flavor: latest=auto + tags: type=raw,value=latest,enable={{is_default_branch}} + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push Docker image uses: docker/build-push-action@v6 with: - context: boltz/11.8.0-cudnn8-runtime-ubuntu22.04 push: true + platforms: arm64,amd64 + context: ./${{ env.IMAGE_NAME }}/11.8.0-cudnn8-runtime-ubuntu22.04 tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.inputs.image_tag }}-cu118 build-args: BASE_IMAGE=nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04 build-boltz-cuda121: @@ -76,27 +101,39 @@ jobs: contents: read packages: write steps: - - name: Checkout code + - name: Checkout repository uses: actions/checkout@v4 - - name: Convert repository name to lowercase - run: echo "IMAGE_NAME=$(echo ${GITHUB_REPOSITORY} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: arm64,amd64 - - name: Log in to the container registry + - name: Login to the container registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract image metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.REGISTRY }}/${{ github.actor }}/${{ env.IMAGE_NAME }} + flavor: latest=auto + tags: type=raw,value=latest,enable={{is_default_branch}} + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push Docker image uses: docker/build-push-action@v6 with: - context: boltz/12.1.0-cudnn8-runtime-ubuntu22.04 push: true + platforms: arm64,amd64 + context: ./${{ env.IMAGE_NAME }}/12.1.0-cudnn8-runtime-ubuntu22.04 tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.inputs.image_tag }}-cu121 build-args: BASE_IMAGE=nvidia/cuda:12.1.0-cudnn8-runtime-ubuntu22.04 build-boltz-cuda124: @@ -105,26 +142,38 @@ jobs: contents: read packages: write steps: - - name: Checkout code + - name: Checkout repository uses: actions/checkout@v4 - - name: Convert repository name to lowercase - run: echo "IMAGE_NAME=$(echo ${GITHUB_REPOSITORY} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: arm64,amd64 - - name: Log in to the container registry + - name: Login to the container registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract image metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.REGISTRY }}/${{ github.actor }}/${{ env.IMAGE_NAME }} + flavor: latest=auto + tags: type=raw,value=latest,enable={{is_default_branch}} + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push Docker image uses: docker/build-push-action@v6 with: - context: boltz/12.4.1-cudnn-runtime-ubuntu22.04 push: true + platforms: arm64,amd64 + context: ./${{ env.IMAGE_NAME }}/12.4.1-cudnn8-runtime-ubuntu22.04 tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.inputs.image_tag }}-cu124 - build-args: BASE_IMAGE=nvidia/cuda:12.4.1-cudnn-runtime-ubuntu22.04 + build-args: BASE_IMAGE=nvidia/cuda:12.4.1-cudnn8-runtime-ubuntu22.04 diff --git a/.github/workflows/qlora.yaml b/.github/workflows/qlora.yaml index bd91c87..910f7a7 100644 --- a/.github/workflows/qlora.yaml +++ b/.github/workflows/qlora.yaml @@ -4,12 +4,13 @@ on: workflow_dispatch: inputs: image_tag: - description: "Tag for the image, e.g. qlora makes qlora-cpu, qlora-cu118, qlora-cu121, and qlora-cu124" + description: "Tag for the image" required: false - default: "qlora" + default: "latest" env: REGISTRY: ghcr.io + IMAGE_NAME: qlora jobs: build-qlora-cpu: @@ -18,28 +19,40 @@ jobs: contents: read packages: write steps: - - name: Checkout code + - name: Checkout repository uses: actions/checkout@v4 - - name: Convert repository name to lowercase - run: echo "IMAGE_NAME=$(echo ${GITHUB_REPOSITORY} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: arm64,amd64 - - name: Log in to the container registry + - name: Login to the container registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract image metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.REGISTRY }}/${{ github.actor }}/${{ env.IMAGE_NAME }} + flavor: latest=auto + tags: type=raw,value=latest,enable={{is_default_branch}} + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push Docker image uses: docker/build-push-action@v6 with: - context: qlora/python3.11-slim push: true - tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.inputs.image_tag }}-cpu + platforms: arm64,amd64 + context: ./${{ env.IMAGE_NAME }}/python3.11-slim + tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.inputs.image_tag }} build-args: BASE_IMAGE=python:3.11-slim build-qlora-cuda118: runs-on: ubuntu-latest @@ -47,27 +60,39 @@ jobs: contents: read packages: write steps: - - name: Checkout code + - name: Checkout repository uses: actions/checkout@v4 - - name: Convert repository name to lowercase - run: echo "IMAGE_NAME=$(echo ${GITHUB_REPOSITORY} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: arm64,amd64 - - name: Log in to the container registry + - name: Login to the container registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract image metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.REGISTRY }}/${{ github.actor }}/${{ env.IMAGE_NAME }} + flavor: latest=auto + tags: type=raw,value=latest,enable={{is_default_branch}} + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push Docker image uses: docker/build-push-action@v6 with: - context: qlora/11.8.0-cudnn8-runtime-ubuntu22.04 push: true + platforms: arm64,amd64 + context: ./${{ env.IMAGE_NAME }}/11.8.0-cudnn8-runtime-ubuntu22.04 tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.inputs.image_tag }}-cu118 build-args: BASE_IMAGE=nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04 build-qlora-cuda121: @@ -76,27 +101,39 @@ jobs: contents: read packages: write steps: - - name: Checkout code + - name: Checkout repository uses: actions/checkout@v4 - - name: Convert repository name to lowercase - run: echo "IMAGE_NAME=$(echo ${GITHUB_REPOSITORY} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: arm64,amd64 - - name: Log in to the container registry + - name: Login to the container registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract image metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.REGISTRY }}/${{ github.actor }}/${{ env.IMAGE_NAME }} + flavor: latest=auto + tags: type=raw,value=latest,enable={{is_default_branch}} + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push Docker image uses: docker/build-push-action@v6 with: - context: qlora/12.1.0-cudnn8-runtime-ubuntu22.04 push: true + platforms: arm64,amd64 + context: ./${{ env.IMAGE_NAME }}/12.1.0-cudnn8-runtime-ubuntu22.04 tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.inputs.image_tag }}-cu121 build-args: BASE_IMAGE=nvidia/cuda:12.1.0-cudnn8-runtime-ubuntu22.04 build-qlora-cuda124: @@ -105,26 +142,38 @@ jobs: contents: read packages: write steps: - - name: Checkout code + - name: Checkout repository uses: actions/checkout@v4 - - name: Convert repository name to lowercase - run: echo "IMAGE_NAME=$(echo ${GITHUB_REPOSITORY} | tr '[:upper:]' '[:lower:]')" >> $GITHUB_ENV + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: arm64,amd64 - - name: Log in to the container registry + - name: Login to the container registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Extract image metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: | + ${{ env.REGISTRY }}/${{ github.actor }}/${{ env.IMAGE_NAME }} + flavor: latest=auto + tags: type=raw,value=latest,enable={{is_default_branch}} + - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Build and push Docker image uses: docker/build-push-action@v6 with: - context: qlora/12.4.1-cudnn-runtime-ubuntu22.04 push: true + platforms: arm64,amd64 + context: ./${{ env.IMAGE_NAME }}/12.4.1-cudnn-runtime-ubuntu22.04 tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.event.inputs.image_tag }}-cu124 build-args: BASE_IMAGE=nvidia/cuda:12.4.1-cudnn-runtime-ubuntu22.04