diff --git a/.github/workflows/build-langflow-responses.yml b/.github/workflows/build-langflow-responses.yml new file mode 100644 index 00000000..0f9d3d08 --- /dev/null +++ b/.github/workflows/build-langflow-responses.yml @@ -0,0 +1,59 @@ +name: Build Langflow Responses Multi-Arch + +on: + workflow_dispatch: + +jobs: + build: + strategy: + fail-fast: false + matrix: + include: + - platform: linux/amd64 + arch: amd64 + runs-on: ubuntu-latest + - platform: linux/arm64 + arch: arm64 + runs-on: [self-hosted, linux, ARM64, langflow-ai-arm64-2] + + runs-on: ${{ matrix.runs-on }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Build and push langflow (${{ matrix.arch }}) + uses: docker/build-push-action@v5 + with: + context: . + file: ./Dockerfile.langflow + platforms: ${{ matrix.platform }} + push: true + tags: phact/langflow:responses-${{ matrix.arch }} + cache-from: type=gha,scope=langflow-responses-${{ matrix.arch }} + cache-to: type=gha,mode=max,scope=langflow-responses-${{ matrix.arch }} + + manifest: + needs: build + runs-on: ubuntu-latest + steps: + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Create and push multi-arch manifest + run: | + docker buildx imagetools create -t phact/langflow:responses \ + phact/langflow:responses-amd64 \ + phact/langflow:responses-arm64 \ No newline at end of file