name: Tooljet develop docker image build on: push: branches: - develop workflow_dispatch: inputs: job-to-run: description: Enter the job name (tooljet-develop-image/tooljet-server-develop-image) options: ['tooljet-develop-image', 'tooljet-server-develop-image'] required: true jobs: tooljet-develop-image: runs-on: ubuntu-latest if: | ${{ github.ref == 'refs/heads/develop' }} && ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.job-to-run == 'tooljet-develop-image' }} steps: - name: Checkout code uses: actions/checkout@v2 with: ref: refs/heads/develop # Create Docker Buildx builder with platform configuration - name: Set up Docker Buildx run: | mkdir -p ~/.docker/cli-plugins curl -SL https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-amd64 -o ~/.docker/cli-plugins/docker-buildx chmod a+x ~/.docker/cli-plugins/docker-buildx docker buildx create --name mybuilder --platform linux/arm64,linux/amd64,linux/amd64/v2,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6 docker buildx use mybuilder - name: Set DOCKER_CLI_EXPERIMENTAL run: echo "DOCKER_CLI_EXPERIMENTAL=enabled" >> $GITHUB_ENV - name: use mybuilder buildx run: docker buildx use mybuilder - name: Docker Login uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and Push Docker image uses: docker/build-push-action@v4 with: context: . file: docker/production.Dockerfile push: true tags: tooljet/tooljet-ce:develop platforms: linux/amd64 env: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - name: Send Slack Notification on Failure if: failure() run: | message="Job '${{ env.JOB_NAME }}' failed! tooljet/tooljet-ce:develop" curl -X POST -H 'Content-type: application/json' --data "{\"text\":\"$message\"}" ${{ secrets.SLACK_WEBHOOK_URL_OPS_CHANNEL }} tooljet-server-develop-image: runs-on: ubuntu-latest if: | ${{ github.ref == 'refs/heads/develop' }} && ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.job-to-run == 'tooljet-server-develop-image' }} steps: - name: Checkout code uses: actions/checkout@v2 with: ref: refs/heads/develop # Create Docker Buildx builder with platform configuration - name: Set up Docker Buildx run: | mkdir -p ~/.docker/cli-plugins curl -SL https://github.com/docker/buildx/releases/download/v0.11.0/buildx-v0.11.0.linux-amd64 -o ~/.docker/cli-plugins/docker-buildx chmod a+x ~/.docker/cli-plugins/docker-buildx docker buildx create --name mybuilder --platform linux/arm64,linux/amd64,linux/amd64/v2,linux/riscv64,linux/ppc64le,linux/s390x,linux/386,linux/mips64le,linux/mips64,linux/arm/v7,linux/arm/v6 docker buildx use mybuilder - name: Set DOCKER_CLI_EXPERIMENTAL run: echo "DOCKER_CLI_EXPERIMENTAL=enabled" >> $GITHUB_ENV - name: use mybuilder buildx run: docker buildx use mybuilder - name: Docker Login uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and Push Docker image uses: docker/build-push-action@v4 with: context: . file: docker/server.Dockerfile push: true tags: tooljet/tooljet-server-ce:develop platforms: linux/amd64 env: DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - name: Send Slack Notification on Failure if: failure() run: | message="Job '${{ env.JOB_NAME }}' failed! tooljet/tooljet-ce:develop" curl -X POST -H 'Content-type: application/json' --data "{\"text\":\"$message\"}" ${{ secrets.SLACK_WEBHOOK_URL_OPS_CHANNEL }}