v2.43.0 #110
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tooljet release docker images build | |
on: | |
release: | |
types: [published] | |
workflow_dispatch: | |
inputs: | |
job-to-run: | |
description: Enter the job name (tooljet-ce/tooljet-server-ce) | |
options: ["tooljet-ce"] | |
required: true | |
image: | |
description: "Enter the latest image tag" | |
required: true | |
jobs: | |
build-tooljet-ce-image: | |
runs-on: ubuntu-latest | |
if: "${{ github.event.release }}" | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
with: | |
ref: refs/heads/main | |
# 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:${{ github.event.release.tag_name }},tooljet/tooljet-ce:latest | |
platforms: linux/amd64 | |
env: | |
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | |
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Send Slack Notification | |
run: | | |
if [[ "${{ job.status }}" == "success" ]]; then | |
message="ToolJet community image published:\n\`tooljet/tooljet-ce:${{ github.event.release.tag_name }}\`" | |
else | |
message="Job '${{ env.JOB_NAME }}' failed! tooljet/tooljet-ce:${{ github.event.release.tag_name }}" | |
fi | |
curl -X POST -H 'Content-type: application/json' --data "{\"text\":\"$message\"}" ${{ secrets.SLACK_WEBHOOK_URL }} | |
# #Below code helps to trigger the workflow separately | |
tooljet-ce: | |
runs-on: ubuntu-latest | |
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.job-to-run == 'tooljet-ce' }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
with: | |
ref: main | |
# 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:${{ github.event.inputs.image }},tooljet/tooljet-ce:latest | |
platforms: linux/amd64 | |
env: | |
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} | |
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Send Slack Notification | |
run: | | |
if [[ "${{ job.status }}" == "success" ]]; then | |
message="ToolJet community image published:\n\`tooljet/tooljet-ce:${{ github.event.inputs.image }}\`" | |
else | |
message="Job '${{ env.JOB_NAME }}' failed! tooljet/tooljet-ce:${{ github.event.inputs.image }}" | |
fi | |
curl -X POST -H 'Content-type: application/json' --data "{\"text\":\"$message\"}" ${{ secrets.SLACK_WEBHOOK_URL }} |