name: Docker Image CI - Docker Hub on: workflow_dispatch: inputs: node_version: description: 'Node.js version to build this image with.' type: choice required: true default: '20' options: - '20' tag_version: description: 'Tag version of the image to be pushed.' type: string required: true default: 'latest' jobs: docker: runs-on: ubuntu-latest steps: - name: Set default values id: defaults run: | echo "node_version=${{ github.event.inputs.node_version || '20' }}" >> $GITHUB_OUTPUT echo "tag_version=${{ github.event.inputs.tag_version || 'latest' }}" >> $GITHUB_OUTPUT - name: Checkout uses: actions/checkout@v4.1.1 - name: Set up QEMU uses: docker/setup-qemu-action@v3.0.0 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3.0.0 - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} # ------------------------- # Build and push main image # ------------------------- - name: Build and push main image uses: docker/build-push-action@v5.3.0 with: context: . file: ./docker/Dockerfile build-args: | NODE_VERSION=${{ steps.defaults.outputs.node_version }} platforms: linux/amd64,linux/arm64 push: true tags: | flowiseai/flowise:${{ steps.defaults.outputs.tag_version }} # ------------------------- # Build and push worker image # ------------------------- - name: Build and push worker image uses: docker/build-push-action@v5.3.0 with: context: . file: docker/worker/Dockerfile build-args: | NODE_VERSION=${{ steps.defaults.outputs.node_version }} platforms: linux/amd64,linux/arm64 push: true tags: | flowiseai/flowise-worker:${{ steps.defaults.outputs.tag_version }}