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:
parent
91264a0595
commit
e1d3e741fd
6 changed files with 735 additions and 49 deletions
106
.github/workflows/release.yml
vendored
106
.github/workflows/release.yml
vendored
|
|
@ -54,8 +54,8 @@ jobs:
|
|||
secrets: inherit
|
||||
|
||||
|
||||
release-base:
|
||||
name: Release Langflow Base
|
||||
build-base:
|
||||
name: Build Langflow Base
|
||||
needs: [ci]
|
||||
if: inputs.release_package_base == true
|
||||
runs-on: ubuntu-latest
|
||||
|
|
@ -113,12 +113,9 @@ jobs:
|
|||
else
|
||||
echo "Server terminated successfully"
|
||||
fi
|
||||
- name: Publish to PyPI
|
||||
if: steps.check-version.outputs.skipped == 'false'
|
||||
env:
|
||||
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
||||
run: |
|
||||
make publish base=true
|
||||
|
||||
# PyPI publishing moved to after cross-platform testing
|
||||
|
||||
- name: Upload Artifact
|
||||
if: steps.check-version.outputs.skipped == 'false'
|
||||
uses: actions/upload-artifact@v4
|
||||
|
|
@ -126,10 +123,10 @@ jobs:
|
|||
name: dist-base
|
||||
path: src/backend/base/dist
|
||||
|
||||
release-main:
|
||||
name: Release Langflow Main
|
||||
build-main:
|
||||
name: Build Langflow Main
|
||||
if: inputs.release_package_main == true
|
||||
needs: [release-base]
|
||||
needs: [build-base]
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
version: ${{ steps.check-version.outputs.version }}
|
||||
|
|
@ -172,7 +169,7 @@ jobs:
|
|||
echo version=$version >> $GITHUB_OUTPUT
|
||||
fi
|
||||
- name: Wait for PyPI Propagation
|
||||
if: needs.release-base.outputs.skipped == 'false'
|
||||
if: needs.build-base.outputs.skipped == 'false'
|
||||
run: sleep 300 # wait for 5 minutes to ensure PyPI propagation
|
||||
|
||||
- name: Build project for distribution
|
||||
|
|
@ -194,25 +191,78 @@ jobs:
|
|||
else
|
||||
echo "Server terminated successfully"
|
||||
fi
|
||||
- name: Publish to PyPI
|
||||
env:
|
||||
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
||||
run: |
|
||||
make publish main=true
|
||||
|
||||
# PyPI publishing moved to after cross-platform testing
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: dist-main
|
||||
path: dist
|
||||
|
||||
test-cross-platform:
|
||||
name: Test Cross-Platform Installation
|
||||
if: inputs.release_package_base == true || inputs.release_package_main == true
|
||||
needs: [build-base, build-main]
|
||||
uses: ./.github/workflows/cross-platform-test.yml
|
||||
with:
|
||||
base-artifact-name: "dist-base"
|
||||
main-artifact-name: "dist-main"
|
||||
test-timeout: 120
|
||||
|
||||
publish-base:
|
||||
name: Publish Langflow Base to PyPI
|
||||
if: inputs.release_package_base == true
|
||||
needs: [build-base, test-cross-platform]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Download base artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: dist-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-base.outputs.skipped == 'false'
|
||||
env:
|
||||
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
||||
run: |
|
||||
cd src/backend/base && uv publish dist/*.whl
|
||||
|
||||
publish-main:
|
||||
name: Publish Langflow Main to PyPI
|
||||
if: inputs.release_package_main == true
|
||||
needs: [build-main, test-cross-platform, publish-base]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Download main artifact
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: dist-main
|
||||
path: dist
|
||||
- name: Setup Environment
|
||||
uses: astral-sh/setup-uv@v6
|
||||
with:
|
||||
enable-cache: false
|
||||
python-version: "3.13"
|
||||
- name: Publish main to PyPI
|
||||
env:
|
||||
UV_PUBLISH_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
|
||||
run: |
|
||||
uv publish dist/*.whl
|
||||
|
||||
call_docker_build_base:
|
||||
name: Call Docker Build Workflow for Langflow Base
|
||||
if: inputs.build_docker_base == true
|
||||
needs: [release-base, release-main]
|
||||
needs: [publish-base, publish-main]
|
||||
uses: ./.github/workflows/docker-build.yml
|
||||
with:
|
||||
base_version: ${{ needs.release-base.outputs.version }}
|
||||
main_version: ${{ needs.release-main.outputs.version }}
|
||||
base_version: ${{ needs.publish-base.needs.build-base.outputs.version }}
|
||||
main_version: ${{ needs.publish-main.needs.build-main.outputs.version }}
|
||||
release_type: base
|
||||
pre_release: ${{ inputs.pre_release }}
|
||||
secrets: inherit
|
||||
|
|
@ -220,10 +270,10 @@ jobs:
|
|||
call_docker_build_main_ep:
|
||||
name: Call Docker Build Workflow for Langflow with Entrypoint
|
||||
if: inputs.build_docker_ep == true
|
||||
needs: [release-main, call_docker_build_base]
|
||||
needs: [publish-main, call_docker_build_base]
|
||||
uses: ./.github/workflows/docker-build.yml
|
||||
with:
|
||||
main_version: ${{ needs.release-main.outputs.version }}
|
||||
main_version: ${{ needs.publish-main.needs.build-main.outputs.version }}
|
||||
release_type: main-ep
|
||||
pre_release: False
|
||||
secrets: inherit
|
||||
|
|
@ -231,10 +281,10 @@ jobs:
|
|||
call_docker_build_main:
|
||||
name: Call Docker Build Workflow for Langflow
|
||||
if: inputs.build_docker_main == true
|
||||
needs: [release-main, call_docker_build_main_ep]
|
||||
needs: [publish-main, call_docker_build_main_ep]
|
||||
uses: ./.github/workflows/docker-build.yml
|
||||
with:
|
||||
main_version: ${{ needs.release-main.outputs.version }}
|
||||
main_version: ${{ needs.publish-main.needs.build-main.outputs.version }}
|
||||
release_type: main
|
||||
pre_release: ${{ inputs.pre_release }}
|
||||
secrets: inherit
|
||||
|
|
@ -242,10 +292,10 @@ jobs:
|
|||
call_docker_build_main_all:
|
||||
name: Call Docker Build Workflow for langflow-all
|
||||
if: inputs.build_docker_main == true
|
||||
needs: [release-main]
|
||||
needs: [publish-main]
|
||||
uses: ./.github/workflows/docker-build.yml
|
||||
with:
|
||||
main_version: ${{ needs.release-main.outputs.version }}
|
||||
main_version: ${{ needs.publish-main.needs.build-main.outputs.version }}
|
||||
release_type: main-all
|
||||
pre_release: ${{ inputs.pre_release }}
|
||||
secrets: inherit
|
||||
|
|
@ -254,7 +304,7 @@ jobs:
|
|||
create_release:
|
||||
name: Create Release
|
||||
runs-on: ubuntu-latest
|
||||
needs: release-main
|
||||
needs: publish-main
|
||||
steps:
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
|
|
@ -268,5 +318,5 @@ jobs:
|
|||
draft: false
|
||||
generateReleaseNotes: true
|
||||
prerelease: ${{ inputs.pre_release }}
|
||||
tag: ${{ needs.release-main.outputs.version }}
|
||||
tag: ${{ needs.publish-main.needs.build-main.outputs.version }}
|
||||
commit: ${{ github.ref }}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue