From 449fc395d672a8e4babbaa036756a5dcd00318c6 Mon Sep 17 00:00:00 2001 From: phact Date: Tue, 16 Sep 2025 11:51:41 -0400 Subject: [PATCH 1/7] ci releases --- .github/workflows/build-multiarch.yml | 56 ++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-multiarch.yml b/.github/workflows/build-multiarch.yml index 620bcf3b..45815b29 100644 --- a/.github/workflows/build-multiarch.yml +++ b/.github/workflows/build-multiarch.yml @@ -10,6 +10,60 @@ on: 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" + + - 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: false + generate_release_notes: true + files: | + dist/*.whl + dist/*.tar.gz + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + build: strategy: fail-fast: false @@ -106,7 +160,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: From 8b268d158e8643642392c9a9977f749519a6018d Mon Sep 17 00:00:00 2001 From: phact Date: Tue, 7 Oct 2025 12:07:58 -0400 Subject: [PATCH 2/7] v0.1.16 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index ee0143f8..2af5b29e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "openrag" -version = "0.1.15" +version = "0.1.16" description = "Add your description here" readme = "README.md" requires-python = ">=3.13" From b017d18ec979a1050ff33af80adfd2728225c64d Mon Sep 17 00:00:00 2001 From: phact Date: Tue, 7 Oct 2025 12:16:01 -0400 Subject: [PATCH 3/7] rename action --- .github/workflows/build-multiarch.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-multiarch.yml b/.github/workflows/build-multiarch.yml index 45815b29..cbe8bf16 100644 --- a/.github/workflows/build-multiarch.yml +++ b/.github/workflows/build-multiarch.yml @@ -1,4 +1,4 @@ -name: Build Multi-Architecture Docker Images +name: Release + Docker Images (multi-arch) on: workflow_dispatch: From 23134a3a8ba13877e4ed9907b49c0c33d4af61f2 Mon Sep 17 00:00:00 2001 From: phact Date: Tue, 7 Oct 2025 12:29:47 -0400 Subject: [PATCH 4/7] use setuptools --- pyproject.toml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 2af5b29e..6c74348b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,3 +1,7 @@ +[build-system] +requires = ["setuptools>=61.0", "wheel"] +build-backend = "setuptools.build_meta" + [project] name = "openrag" version = "0.1.16" From 86aaf4761b7fe9e90600934348541bf5d8b07fc4 Mon Sep 17 00:00:00 2001 From: phact Date: Tue, 7 Oct 2025 12:31:42 -0400 Subject: [PATCH 5/7] remove langflow responses workflow --- .../workflows/build-langflow-responses.yml | 59 ------------------- 1 file changed, 59 deletions(-) delete mode 100644 .github/workflows/build-langflow-responses.yml diff --git a/.github/workflows/build-langflow-responses.yml b/.github/workflows/build-langflow-responses.yml deleted file mode 100644 index 0f9d3d08..00000000 --- a/.github/workflows/build-langflow-responses.yml +++ /dev/null @@ -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 \ No newline at end of file From 61d34a8013d370eae754b41958c48aa650bb954b Mon Sep 17 00:00:00 2001 From: phact Date: Tue, 7 Oct 2025 12:34:07 -0400 Subject: [PATCH 6/7] MANIFEST.in --- MANIFEST.in | 1 + 1 file changed, 1 insertion(+) create mode 100644 MANIFEST.in diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..d0f089fc --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1 @@ +recursive-include src/tui/_assets * \ No newline at end of file From 8b5bea52a53ad70432250faf1678645c93cba8e0 Mon Sep 17 00:00:00 2001 From: phact Date: Tue, 7 Oct 2025 12:43:49 -0400 Subject: [PATCH 7/7] workflow improvements --- .github/workflows/build-multiarch.yml | 28 +++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-multiarch.yml b/.github/workflows/build-multiarch.yml index cbe8bf16..e05d2330 100644 --- a/.github/workflows/build-multiarch.yml +++ b/.github/workflows/build-multiarch.yml @@ -1,13 +1,12 @@ 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: @@ -31,6 +30,15 @@ jobs: 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 @@ -56,7 +64,7 @@ jobs: tag_name: v${{ steps.version.outputs.version }} name: Release ${{ steps.version.outputs.version }} draft: false - prerelease: false + prerelease: ${{ steps.version.outputs.is_prerelease }} generate_release_notes: true files: | dist/*.whl @@ -200,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 \ @@ -219,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