name: Manual Docker Build and Push on: workflow_dispatch: inputs: branch_name: description: 'Git branch to build from' required: true default: 'main' dockerfile_path: description: 'Path to Dockerfile' required: true docker_tag: description: 'Docker tag suffix (e.g., pre-release-14)' required: true jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.branch_name }} fetch-depth: 0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Generate full Docker tag id: taggen run: | input_tag="${{ github.event.inputs.docker_tag }}" if [[ "$input_tag" == *"/"* ]]; then echo "tag=$input_tag" >> $GITHUB_OUTPUT else echo "tag=tooljet/tj-osv:$input_tag" >> $GITHUB_OUTPUT fi - name: Build and Push Docker image uses: docker/build-push-action@v4 with: context: . file: ${{ github.event.inputs.dockerfile_path }} push: true tags: ${{ steps.taggen.outputs.tag }} platforms: linux/amd64 build-args: | CUSTOM_GITHUB_TOKEN=${{ secrets.CUSTOM_GITHUB_TOKEN }} BRANCH_NAME=${{ github.event.inputs.branch_name }} - name: Show the full Docker tag run: | echo "✅ Docker image will be tagged as: ${{ steps.taggen.outputs.tag }}"