diff --git a/.github/workflows/third-party.yml b/.github/workflows/third-party.yml new file mode 100644 index 0000000..4751e18 --- /dev/null +++ b/.github/workflows/third-party.yml @@ -0,0 +1,101 @@ +name: Third-Party Tests + +on: + workflow_dispatch: + pull_request: + branches: + - main + types: + - labeled + - synchronize + +env: + RUSTFLAGS: "--cfg uuid_unstable" + +jobs: + langchain-core: + name: Test langchain-core + runs-on: ubuntu-latest + if: > + (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'third-party-tests')) || + github.event_name == 'workflow_dispatch' + steps: + - name: Checkout uuid-utils + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.13" + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + + - name: Build uuid-utils wheel + run: | + pip install maturin + maturin build --release --out dist + + - name: Install uv + uses: astral-sh/setup-uv@v4 + + - name: Checkout langchain-core + uses: actions/checkout@v4 + with: + repository: langchain-ai/langchain + path: langchain + sparse-checkout: | + libs/core + libs/standard-tests + libs/text-splitters + sparse-checkout-cone-mode: false + + - name: Install langchain-core dependencies and run tests + run: | + cd langchain/libs/core + uv sync --all-groups + WHEEL_FILE=$(ls $GITHUB_WORKSPACE/dist/uuid_utils-*.whl) + UV_NO_SYNC=1 uv pip install --force-reinstall $WHEEL_FILE + UV_NO_SYNC=1 make test + + langsmith-sdk: + name: Test langsmith SDK + runs-on: ubuntu-latest + if: > + (github.event_name == 'pull_request' && contains(github.event.pull_request.labels.*.name, 'third-party-tests')) || + github.event_name == 'workflow_dispatch' + steps: + - name: Checkout uuid-utils + uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.13" + + - name: Install Rust + uses: dtolnay/rust-toolchain@stable + + - name: Build uuid-utils wheel + run: | + uv pip install --system maturin + maturin build --release --out dist + + - name: Checkout langsmith-sdk + uses: actions/checkout@v4 + with: + repository: langchain-ai/langsmith-sdk + path: langsmith-sdk + sparse-checkout: python + sparse-checkout-cone-mode: false + + - name: Install langsmith-sdk dependencies and run tests + run: | + cd langsmith-sdk/python + uv sync --all-groups + WHEEL_FILE=$(ls $GITHUB_WORKSPACE/dist/uuid_utils-*.whl) + UV_NO_SYNC=1 uv pip install --force-reinstall $WHEEL_FILE + UV_NO_SYNC=1 make test