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:
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
paths:
|
||||||
|
- 'pyproject.toml'
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
inputs:
|
|
||||||
update_latest:
|
|
||||||
description: 'Update latest tags (production release)'
|
|
||||||
required: false
|
|
||||||
default: false
|
|
||||||
type: boolean
|
|
||||||
|
|
||||||
jobs:
|
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:
|
build:
|
||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
|
|
@ -106,7 +168,7 @@ jobs:
|
||||||
cache-to: type=gha,mode=max,scope=${{ matrix.image }}-${{ matrix.arch }}
|
cache-to: type=gha,mode=max,scope=${{ matrix.image }}-${{ matrix.arch }}
|
||||||
|
|
||||||
manifest:
|
manifest:
|
||||||
needs: build
|
needs: [build, build-python-packages]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: github.event_name != 'pull_request'
|
if: github.event_name != 'pull_request'
|
||||||
steps:
|
steps:
|
||||||
|
|
@ -146,8 +208,8 @@ jobs:
|
||||||
phact/openrag-opensearch:$VERSION-amd64 \
|
phact/openrag-opensearch:$VERSION-amd64 \
|
||||||
phact/openrag-opensearch:$VERSION-arm64
|
phact/openrag-opensearch:$VERSION-arm64
|
||||||
|
|
||||||
# Only update latest tags if version is numeric AND checkbox is checked
|
# Only update latest tags if version is numeric
|
||||||
if [[ "$VERSION" =~ ^[0-9.-]+$ ]] && [[ "${{ github.event.inputs.update_latest }}" == "true" ]]; then
|
if [[ "$VERSION" =~ ^[0-9.-]+$ ]]; then
|
||||||
echo "Updating latest tags for production release: $VERSION"
|
echo "Updating latest tags for production release: $VERSION"
|
||||||
docker buildx imagetools create -t phact/openrag-backend:latest \
|
docker buildx imagetools create -t phact/openrag-backend:latest \
|
||||||
phact/openrag-backend:$VERSION-amd64 \
|
phact/openrag-backend:$VERSION-amd64 \
|
||||||
|
|
@ -165,5 +227,5 @@ jobs:
|
||||||
phact/openrag-opensearch:$VERSION-amd64 \
|
phact/openrag-opensearch:$VERSION-amd64 \
|
||||||
phact/openrag-opensearch:$VERSION-arm64
|
phact/openrag-opensearch:$VERSION-arm64
|
||||||
else
|
else
|
||||||
echo "Skipping latest tags - version: $VERSION, update_latest: ${{ github.event.inputs.update_latest }}"
|
echo "Skipping latest tags - version: $VERSION (not numeric)"
|
||||||
fi
|
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]
|
[project]
|
||||||
name = "openrag"
|
name = "openrag"
|
||||||
version = "0.1.15"
|
version = "0.1.16"
|
||||||
description = "Add your description here"
|
description = "Add your description here"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.13"
|
requires-python = ">=3.13"
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue