| | name: Build and Publish Docker Image |
| |
|
| | on: |
| | workflow_dispatch: |
| | push: |
| | branches: |
| | - 'main' |
| | release: |
| | types: [published] |
| |
|
| | jobs: |
| | build-and-push-image: |
| | runs-on: ubuntu-latest |
| |
|
| | permissions: |
| | contents: read |
| | packages: write |
| |
|
| | env: |
| | |
| | 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 |
| |
|
| | |
| | - 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 }} |
| |
|
| | |
| | - name: Build and Push Docker Image |
| | if: github.ref == 'refs/heads/main' |
| | uses: docker/build-push-action@v4 |
| | with: |
| | context: . |
| | file: Dockerfile |
| | push: true |
| | tags: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest |
| | labels: version=${{ github.run_id }} |
| | platforms: linux/amd64,linux/arm64 |
| |
|
| | |
| | - name: Build and Push Docker Image (Tagged) |
| | if: startsWith(github.ref, 'refs/tags/') |
| | uses: docker/build-push-action@v4 |
| | with: |
| | context: . |
| | file: Dockerfile |
| | 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-min-image: |
| | runs-on: ubuntu-latest |
| |
|
| | permissions: |
| | contents: read |
| | packages: write |
| |
|
| | env: |
| | |
| | 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 |
| |
|
| | |
| | - 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 }} |
| |
|
| | |
| | - 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 |
| |
|
| | |
| | - 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: |
| | |
| | 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 |
| |
|
| | |
| | - 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 }} |
| |
|
| | |
| | - name: Build and Push Docker Image |
| | if: github.ref == 'refs/heads/main' |
| | uses: docker/build-push-action@v4 |
| | with: |
| | context: . |
| | file: Dockerfile |
| | push: true |
| | tags: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:latest |
| | labels: version=${{ github.run_id }} |
| | platforms: linux/amd64,linux/arm64 |
| | build-args: | |
| | USE_ROCM=1 |
| | |
| | |
| | - name: Build and Push Docker Image (Tagged) |
| | if: startsWith(github.ref, 'refs/tags/') |
| | uses: docker/build-push-action@v4 |
| | with: |
| | context: . |
| | file: Dockerfile |
| | push: true |
| | tags: ${{ env.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }} |
| | labels: version=${{ github.run_id }} |
| | platforms: linux/amd64,linux/arm64 |
| | build-args: | |
| | USE_ROCM=1 |
| | |
| |
|