feat: added install matrix before release (#9205)

* added install matrix before release

* adds ad-hoc testing

* temp enable test

* test changes

* fix test config

* fix package install

* commonize code

* renamed files

* fix issue

* remvoe run id

* fix base build

* revert main package build change

* fix build

* fix upload

* revert ci to main

* updated release workflow naming

* add cross-platform tests to nightly build
This commit is contained in:
Eric Pinzur 2025-07-30 21:57:59 +02:00 • committed by GitHub
commit e1d3e741fd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 735 additions and 49 deletions

View file

@ -58,14 +58,15 @@ env:
PYTHON_VERSION: "3.13"
jobs:
release-nightly-base:
name: Release Langflow Nightly Base
build-nightly-base:
name: Build Langflow Nightly Base
runs-on: ubuntu-latest
defaults:
run:
shell: bash
outputs:
version: ${{ steps.verify.outputs.version }}
skipped: ${{ steps.verify.outputs.skipped }}
steps:
- name: Check out the code at a specific ref
uses: actions/checkout@v4
@ -126,22 +127,17 @@ jobs:
echo "Server terminated successfully"
fi
- name: Publish to PyPI
env:
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }}
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
run: |
make publish base=true
# PyPI publishing moved to after cross-platform testing
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: dist-base
name: dist-nightly-base
path: src/backend/base/dist
release-nightly-main:
name: Release Langflow Nightly Main
needs: [release-nightly-base]
build-nightly-main:
name: Build Langflow Nightly Main
needs: [build-nightly-base]
runs-on: ubuntu-latest
outputs:
version: ${{ steps.verify.outputs.version }}
@ -181,6 +177,7 @@ jobs:
version=$(echo $version | sed 's/^v//')
echo "version=$version" >> $GITHUB_OUTPUT
- name: Wait for PyPI Propagation
if: needs.build-nightly-base.outputs.skipped == 'false'
run: sleep 300 # wait for 5 minutes to ensure PyPI propagation of base
- name: Build project for distribution
@ -202,22 +199,73 @@ jobs:
else
echo "Server terminated successfully"
fi
# PyPI publishing moved to after cross-platform testing
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: dist-nightly-main
path: dist
test-cross-platform:
name: Test Cross-Platform Installation
needs: [build-nightly-base, build-nightly-main]
uses: ./.github/workflows/cross-platform-test.yml
with:
base-artifact-name: "dist-nightly-base"
main-artifact-name: "dist-nightly-main"
test-timeout: 120
publish-nightly-base:
name: Publish Langflow Base Nightly to PyPI
needs: [build-nightly-base, test-cross-platform]
runs-on: ubuntu-latest
steps:
- name: Download base artifact
uses: actions/download-artifact@v4
with:
name: dist-nightly-base
path: src/backend/base/dist
- name: Setup Environment
uses: astral-sh/setup-uv@v6
with:
enable-cache: false
python-version: "3.13"
- name: Publish base to PyPI
if: needs.build-nightly-base.outputs.skipped == 'false'
env:
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }}
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
run: |
make publish base=true
publish-nightly-main:
name: Publish Langflow Main Nightly to PyPI
needs: [build-nightly-main, test-cross-platform, publish-nightly-base]
runs-on: ubuntu-latest
steps:
- name: Download main artifact
uses: actions/download-artifact@v4
with:
name: dist-nightly-main
path: dist
- name: Setup Environment
uses: astral-sh/setup-uv@v6
with:
enable-cache: false
python-version: "3.13"
- name: Publish to PyPI
env:
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_API_TOKEN }}
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
run: |
make publish main=true
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: dist-main
path: dist
call_docker_build_base:
name: Call Docker Build Workflow for Langflow Base
if: always() && ${{ inputs.build_docker_base == 'true' }}
needs: [release-nightly-base, release-nightly-main]
needs: [build-nightly-base, build-nightly-main]
uses: ./.github/workflows/docker-build.yml
with:
release_type: nightly-base
@ -228,7 +276,7 @@ jobs:
call_docker_build_main:
name: Call Docker Build Workflow for Langflow
if: always() && ${{ inputs.build_docker_main == 'true' }}
needs: [release-nightly-main, call_docker_build_base]
needs: [build-nightly-main, call_docker_build_base]
uses: ./.github/workflows/docker-build.yml
with:
release_type: nightly-main
@ -239,7 +287,7 @@ jobs:
# call_docker_build_main_all:
# name: Call Docker Build Workflow for langflow-all
# if: always() && ${{ inputs.build_docker_main == 'true' }}
# needs: [release-nightly-main]
# needs: [build-nightly-main]
# uses: ./.github/workflows/docker-build.yml
# with:
# release_type: nightly-main-all
@ -249,7 +297,7 @@ jobs:
call_docker_build_main_ep:
name: Call Docker Build Workflow for Langflow with Entrypoint
if: always() && ${{ inputs.build_docker_ep == 'true' }}
needs: [release-nightly-main, call_docker_build_main]
needs: [build-nightly-main, call_docker_build_main]
uses: ./.github/workflows/docker-build.yml
with:
release_type: main-ep