diff --git a/.github/workflows/jwa_docker_publish.yaml b/.github/workflows/jwa_docker_publish.yaml new file mode 100644 index 00000000..8a51ca3b --- /dev/null +++ b/.github/workflows/jwa_docker_publish.yaml @@ -0,0 +1,60 @@ +name: Build & Publish JWA Docker image +on: + push: + branches: + - main + - v*-branch + - notebooks-v1 + paths: + - components/crud-web-apps/jupyter/** + - components/crud-web-apps/common/** + - releasing/version/VERSION + +env: + IMG: ghcr.io/kubeflow/notebooks/jupyter-web-app + ARCH: linux/amd64,linux/ppc64le,linux/arm64 + +jobs: + push_to_registry: + name: Build & Push image to GHCR Hub + runs-on: ubuntu-22.04 + defaults: + run: + working-directory: components/crud-web-apps/jupyter + steps: + - name: Checkout + uses: actions/checkout@v4 + + - uses: dorny/paths-filter@v3 + id: filter + with: + base: ${{ github.ref }} + filters: | + version: + - 'releasing/version/VERSION' + + - name: Login to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Setup QEMU + uses: docker/setup-qemu-action@v3 + + - name: Setup Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and push multi-arch docker image + run: make docker-build-push-multi-arch + + - name: Build and push latest multi-arch docker image + if: github.ref == 'refs/heads/notebooks-v1' + run: TAG=latest make docker-build-push-multi-arch + + - name: Build and push multi-arch docker image on Version change + id: version + if: steps.filter.outputs.version == 'true' + run: TAG=$(cat ../../../releasing/version/VERSION) make docker-build-push-multi-arch +