commit
4cae936fc5
4 changed files with 79 additions and 71 deletions
59
.github/workflows/build-langflow-responses.yml
vendored
59
.github/workflows/build-langflow-responses.yml
vendored
|
|
@ -1,59 +0,0 @@
|
|||
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
|
||||
84
.github/workflows/build-multiarch.yml
vendored
84
.github/workflows/build-multiarch.yml
vendored
|
|
@ -1,15 +1,77 @@
|
|||
name: Build Multi-Architecture Docker Images
|
||||
name: Release + Docker Images (multi-arch)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'pyproject.toml'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
update_latest:
|
||||
description: 'Update latest tags (production release)'
|
||||
required: false
|
||||
default: false
|
||||
type: boolean
|
||||
|
||||
jobs:
|
||||
build-python-packages:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.13'
|
||||
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@v3
|
||||
|
||||
- name: Extract version from pyproject.toml
|
||||
id: version
|
||||
run: |
|
||||
VERSION=$(grep '^version = ' pyproject.toml | cut -d '"' -f 2)
|
||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||
echo "Version: $VERSION"
|
||||
|
||||
# Check if version is numeric (e.g., 0.1.16) vs prerelease (e.g., 0.1.16-rc1)
|
||||
if [[ "$VERSION" =~ ^[0-9.-]+$ ]]; then
|
||||
echo "is_prerelease=false" >> $GITHUB_OUTPUT
|
||||
echo "Release type: Production"
|
||||
else
|
||||
echo "is_prerelease=true" >> $GITHUB_OUTPUT
|
||||
echo "Release type: Prerelease"
|
||||
fi
|
||||
|
||||
- name: Build wheel and source distribution
|
||||
run: |
|
||||
uv build
|
||||
|
||||
- name: List built artifacts
|
||||
run: |
|
||||
ls -la dist/
|
||||
echo "Built artifacts:"
|
||||
for file in dist/*; do
|
||||
echo " - $(basename $file) ($(stat -c%s $file | numfmt --to=iec-i)B)"
|
||||
done
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: python-packages
|
||||
path: dist/
|
||||
retention-days: 30
|
||||
|
||||
- name: Create Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
tag_name: v${{ steps.version.outputs.version }}
|
||||
name: Release ${{ steps.version.outputs.version }}
|
||||
draft: false
|
||||
prerelease: ${{ steps.version.outputs.is_prerelease }}
|
||||
generate_release_notes: true
|
||||
files: |
|
||||
dist/*.whl
|
||||
dist/*.tar.gz
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
build:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
|
|
@ -106,7 +168,7 @@ jobs:
|
|||
cache-to: type=gha,mode=max,scope=${{ matrix.image }}-${{ matrix.arch }}
|
||||
|
||||
manifest:
|
||||
needs: build
|
||||
needs: [build, build-python-packages]
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name != 'pull_request'
|
||||
steps:
|
||||
|
|
@ -146,8 +208,8 @@ jobs:
|
|||
phact/openrag-opensearch:$VERSION-amd64 \
|
||||
phact/openrag-opensearch:$VERSION-arm64
|
||||
|
||||
# Only update latest tags if version is numeric AND checkbox is checked
|
||||
if [[ "$VERSION" =~ ^[0-9.-]+$ ]] && [[ "${{ github.event.inputs.update_latest }}" == "true" ]]; then
|
||||
# Only update latest tags if version is numeric
|
||||
if [[ "$VERSION" =~ ^[0-9.-]+$ ]]; then
|
||||
echo "Updating latest tags for production release: $VERSION"
|
||||
docker buildx imagetools create -t phact/openrag-backend:latest \
|
||||
phact/openrag-backend:$VERSION-amd64 \
|
||||
|
|
@ -165,5 +227,5 @@ jobs:
|
|||
phact/openrag-opensearch:$VERSION-amd64 \
|
||||
phact/openrag-opensearch:$VERSION-arm64
|
||||
else
|
||||
echo "Skipping latest tags - version: $VERSION, update_latest: ${{ github.event.inputs.update_latest }}"
|
||||
echo "Skipping latest tags - version: $VERSION (not numeric)"
|
||||
fi
|
||||
|
|
|
|||
1
MANIFEST.in
Normal file
1
MANIFEST.in
Normal file
|
|
@ -0,0 +1 @@
|
|||
recursive-include src/tui/_assets *
|
||||
|
|
@ -1,6 +1,10 @@
|
|||
[build-system]
|
||||
requires = ["setuptools>=61.0", "wheel"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "openrag"
|
||||
version = "0.1.15"
|
||||
version = "0.1.16"
|
||||
description = "Add your description here"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.13"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue