diff --git a/.github/workflows/_release.yml b/.github/workflows/_release.yml index 92dd272b769..e72ed2bce79 100644 --- a/.github/workflows/_release.yml +++ b/.github/workflows/_release.yml @@ -312,12 +312,79 @@ jobs: run: make integration_tests working-directory: ${{ inputs.working-directory }} + # Test select published packages against new core + test-prior-published-packages-against-new-core: + needs: + - build + - release-notes + - test-pypi-publish + - pre-release-checks + if: ${{ startsWith(inputs.working-directory, 'libs/core') }} + runs-on: ubuntu-latest + strategy: + matrix: + partner: [openai, anthropic] + fail-fast: false # Continue testing other partners if one fails + env: + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} + OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} + AZURE_OPENAI_API_VERSION: ${{ secrets.AZURE_OPENAI_API_VERSION }} + AZURE_OPENAI_API_BASE: ${{ secrets.AZURE_OPENAI_API_BASE }} + AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }} + AZURE_OPENAI_CHAT_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_CHAT_DEPLOYMENT_NAME }} + AZURE_OPENAI_LEGACY_CHAT_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_LEGACY_CHAT_DEPLOYMENT_NAME }} + AZURE_OPENAI_LLM_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_LLM_DEPLOYMENT_NAME }} + AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT_NAME }} + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uv + uses: "./.github/actions/uv_setup" + with: + python-version: ${{ env.PYTHON_VERSION }} + + - uses: actions/download-artifact@v4 + with: + name: dist + path: ${{ inputs.working-directory }}/dist/ + + - name: Test against ${{ matrix.partner }} + run: | + # Identify latest tag + LATEST_PACKAGE_TAG="$( + git ls-remote --tags origin "langchain-${{ matrix.partner }}*" \ + | awk '{print $2}' \ + | sed 's|refs/tags/||' \ + | sort -Vr \ + | head -n 1 + )" + echo "Latest package tag: $LATEST_PACKAGE_TAG" + + # Shallow-fetch just that single tag + git fetch --depth=1 origin tag "$LATEST_PACKAGE_TAG" + + # Navigate to the partner directory + cd $GITHUB_WORKSPACE/libs/partners/${{ matrix.partner }} + + # Checkout the latest package files + git checkout "$LATEST_PACKAGE_TAG" -- . + + # Print as a sanity check + echo "Version number from pyproject.toml: " + cat pyproject.toml | grep "version = " + + # Run tests + uv sync --group test --group test_integration + uv pip install ../../core/dist/*.whl + make integration_tests + publish: needs: - build - release-notes - test-pypi-publish - pre-release-checks + - test-prior-published-packages-against-new-core runs-on: ubuntu-latest permissions: # This permission is used for trusted publishing: