diff --git a/.github/workflows/build-docker.yml b/.github/workflows/build-docker.yml index 1dab48c..faa007c 100644 --- a/.github/workflows/build-docker.yml +++ b/.github/workflows/build-docker.yml @@ -9,7 +9,7 @@ on: types: [published] jobs: - build-and-push-image: + build-and-push-image-amd64: runs-on: ubuntu-latest permissions: @@ -46,28 +46,64 @@ jobs: images: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }} # Build and push the Docker image to GHCR for the main branch or specific tags - - name: Build and Push Docker min Image + - name: Build and Push Docker Image if: github.ref == 'refs/heads/main' uses: docker/build-push-action@v4 with: context: . - file: Dockerfile.min + file: Dockerfile push: true tags: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest labels: version=${{ github.run_id }} - platforms: linux/amd64,linux/arm64 + platforms: linux/amd64 # For tagged releases, build and push the Docker image with the corresponding tag - - name: Build and Push Docker min Image (Tagged) + - name: Build and Push Docker Image (Tagged) if: startsWith(github.ref, 'refs/tags/') uses: docker/build-push-action@v4 with: context: . - file: Dockerfile.min + file: Dockerfile push: true tags: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }} labels: version=${{ github.run_id }} - platforms: linux/amd64,linux/arm64 + platforms: linux/amd64 + + build-and-push-image-arm64: + runs-on: ubuntu-latest + + permissions: + contents: read + packages: write + + env: + # Set up environment variables for the job + DOCKER_REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + TAG: ${{ github.sha }} + + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + with: + install: true + + # Log in to the GitHub Container Registry only when not running on a pull request event + - name: Login to Docker Registry + uses: docker/login-action@v2 + with: + registry: ${{ env.DOCKER_REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }} # Build and push the Docker image to GHCR for the main branch or specific tags - name: Build and Push Docker Image @@ -79,7 +115,7 @@ jobs: push: true tags: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest labels: version=${{ github.run_id }} - platforms: linux/amd64,linux/arm64 + platforms: linux/arm64 # For tagged releases, build and push the Docker image with the corresponding tag - name: Build and Push Docker Image (Tagged) @@ -91,10 +127,107 @@ jobs: push: true tags: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }} labels: version=${{ github.run_id }} + platforms: linux/arm64 + + build-and-push-min-image: + runs-on: ubuntu-latest + + permissions: + contents: read + packages: write + + env: + # Set up environment variables for the job + DOCKER_REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }}-min + TAG: ${{ github.sha }} + + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + with: + install: true + + # Log in to the GitHub Container Registry only when not running on a pull request event + - name: Login to Docker Registry + uses: docker/login-action@v2 + with: + registry: ${{ env.DOCKER_REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }} + + # Build and push the Docker image to GHCR for the main branch or specific tags + - name: Build and Push Docker Image + if: github.ref == 'refs/heads/main' + uses: docker/build-push-action@v4 + with: + context: . + file: Dockerfile.min + push: true + tags: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest + labels: version=${{ github.run_id }} platforms: linux/amd64,linux/arm64 + # For tagged releases, build and push the Docker image with the corresponding tag + - name: Build and Push Docker Image (Tagged) + if: startsWith(github.ref, 'refs/tags/') + uses: docker/build-push-action@v4 + with: + context: . + file: Dockerfile.min + push: true + tags: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }} + labels: version=${{ github.run_id }} + platforms: linux/amd64,linux/arm64 + + build-and-push-rocm-image: + runs-on: ubuntu-latest + + permissions: + contents: read + packages: write + + env: + # Set up environment variables for the job + USE_ROCM: 1 + DOCKER_REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }}-rocm + TAG: ${{ github.sha }} + + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + with: + install: true + + # Log in to the GitHub Container Registry only when not running on a pull request event + - name: Login to Docker Registry + uses: docker/login-action@v2 + with: + registry: ${{ env.DOCKER_REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }} + # Build and push the Docker image to GHCR for the main branch or specific tags - - name: Build and Push Docker ROCm Image + - name: Build and Push Docker Image if: github.ref == 'refs/heads/main' uses: docker/build-push-action@v4 with: @@ -108,7 +241,7 @@ jobs: USE_ROCM=1 # For tagged releases, build and push the Docker image with the corresponding tag - - name: Build and Push Docker ROCm Image (Tagged) + - name: Build and Push Docker Image (Tagged) if: startsWith(github.ref, 'refs/tags/') uses: docker/build-push-action@v4 with: