name: Build and push Docker image on: # For the manual run. workflow_dispatch: push: branches: [ "master" ] paths: - 'docker/base-image/**' - 'docker/build-image/**' - '.github/workflows/docker-build-image.yml' pull_request: branches: [ "master" ] paths: - 'docker/base-image/**' - 'docker/build-image/**' - '.github/workflows/docker-build-image.yml' jobs: docker: runs-on: ubuntu-latest steps: - name: Set Images Version run: echo "KNP_IMAGE_VERSION=v2.0.${{ github.run_number }}" >> $GITHUB_ENV - name: Set up Docker uses: docker/setup-docker-action@v5 with: daemon-config: | { "debug": true, "features": { "containerd-snapshotter": true } } - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ vars.DOCKERHUB_LOGIN }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push the base Docker image for Kaspersky Neuromorphic Platform uses: docker/build-push-action@v7 with: platforms: linux/amd64,linux/arm64 context: "{{defaultContext}}:docker/base-image" load: true push: true tags: | ${{ vars.DOCKERHUB_LOGIN }}/knp-base-image:${{ env.KNP_IMAGE_VERSION }} ${{ vars.DOCKERHUB_LOGIN }}/knp-base-image:latest build-args: KNP_IMAGE_VERSION=${{ env.KNP_IMAGE_VERSION }} timeout-minutes: 180 continue-on-error: false - name: Build and push the Docker image for Kaspersky Neuromorphic Platform build uses: docker/build-push-action@v7 with: platforms: linux/amd64,linux/arm64 context: "{{defaultContext}}:docker/build-image" load: true push: true build-args: KNP_IMAGE_VERSION=${{ env.KNP_IMAGE_VERSION }} tags: | ${{ vars.DOCKERHUB_LOGIN }}/knp-build-image:${{ env.KNP_IMAGE_VERSION }} ${{ vars.DOCKERHUB_LOGIN }}/knp-build-image:latest timeout-minutes: 180 continue-on-error: false