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