From 1bb3bcb743db2ca1034cd11cc0ee33038798e1e4 Mon Sep 17 00:00:00 2001 From: bracesproul Date: Mon, 5 Feb 2024 11:08:53 -0800 Subject: [PATCH] infra[minor]: Split unit tests --- .github/workflows/ci.yml | 33 ------ .github/workflows/unit-testing.yml | 157 +++++++++++++++++++++++++++++ 2 files changed, 157 insertions(+), 33 deletions(-) create mode 100644 .github/workflows/unit-testing.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index be9fe704098a..659dbff02f1b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,39 +39,6 @@ jobs: - name: Check linting run: yarn run lint - test: - name: Unit Tests - strategy: - matrix: - os: [ubuntu-latest] - node-version: [18.x, 20.x] - # See Node.js release schedule at https://nodejs.org/en/about/releases/ - # include: - # - os: windows-latest - # node-version: 20.x - # - os: macos-latest - # node-version: 20.x - runs-on: ${{ matrix.os }} - env: - PUPPETEER_SKIP_DOWNLOAD: "true" - PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "true" - steps: - - uses: actions/checkout@v4 - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - cache: "yarn" - - name: Install dependencies - run: yarn install --immutable - - name: Test - run: yarn run test:unit - # run: yarn run test:unit -- --coverage - # - name: Upload coverage reports to Codecov - # uses: codecov/codecov-action@v3 - # env: - # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - test-exports: uses: ./.github/workflows/test-exports.yml diff --git a/.github/workflows/unit-testing.yml b/.github/workflows/unit-testing.yml new file mode 100644 index 000000000000..4a9516c43cf2 --- /dev/null +++ b/.github/workflows/unit-testing.yml @@ -0,0 +1,157 @@ +# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs + +name: CI + +on: + push: + branches: ["main"] + pull_request: + # Do not run this workflow if only docs changed. + paths-ignore: + - 'docs/**' + workflow_dispatch: # Allows triggering the workflow manually in GitHub UI + + +# If another push to the same PR or branch happens while this workflow is still running, +# cancel the earlier run in favor of the next run. +# +# There's no point in testing an outdated version of the code. GitHub only allows +# a limited number of job runners to be active at the same time, so it's better to cancel +# pointless jobs early so that more useful jobs can run sooner. +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test-langchain: + name: Unit Tests (LangChain) + strategy: + matrix: + os: [ubuntu-latest] + node-version: [18.x, 20.x] + # See Node.js release schedule at https://nodejs.org/en/about/releases/ + # include: + # - os: windows-latest + # node-version: 20.x + # - os: macos-latest + # node-version: 20.x + runs-on: ${{ matrix.os }} + env: + PUPPETEER_SKIP_DOWNLOAD: "true" + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "true" + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: "yarn" + - name: Install dependencies + run: yarn install --immutable + - name: Test + run: yarn run test:unit --filter=langchain + # run: yarn run test:unit -- --coverage + # - name: Upload coverage reports to Codecov + # uses: codecov/codecov-action@v3 + # env: + # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + + test-core: + name: Unit Tests (Core) + strategy: + matrix: + os: [ubuntu-latest] + node-version: [18.x, 20.x] + # See Node.js release schedule at https://nodejs.org/en/about/releases/ + # include: + # - os: windows-latest + # node-version: 20.x + # - os: macos-latest + # node-version: 20.x + runs-on: ${{ matrix.os }} + env: + PUPPETEER_SKIP_DOWNLOAD: "true" + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "true" + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: "yarn" + - name: Install dependencies + run: yarn install --immutable + - name: Test + run: yarn run test:unit --filter=@langchain/core + # run: yarn run test:unit -- --coverage + # - name: Upload coverage reports to Codecov + # uses: codecov/codecov-action@v3 + # env: + # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + + test-community: + name: Unit Tests (Community) + strategy: + matrix: + os: [ubuntu-latest] + node-version: [18.x, 20.x] + # See Node.js release schedule at https://nodejs.org/en/about/releases/ + # include: + # - os: windows-latest + # node-version: 20.x + # - os: macos-latest + # node-version: 20.x + runs-on: ${{ matrix.os }} + env: + PUPPETEER_SKIP_DOWNLOAD: "true" + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "true" + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: "yarn" + - name: Install dependencies + run: yarn install --immutable + - name: Test + run: yarn run test:unit --filter=@langchain/community + # run: yarn run test:unit -- --coverage + # - name: Upload coverage reports to Codecov + # uses: codecov/codecov-action@v3 + # env: + # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} + + test-integrations: + name: Unit Tests (Integrations) + strategy: + matrix: + os: [ubuntu-latest] + node-version: [18.x, 20.x] + # See Node.js release schedule at https://nodejs.org/en/about/releases/ + # include: + # - os: windows-latest + # node-version: 20.x + # - os: macos-latest + # node-version: 20.x + runs-on: ${{ matrix.os }} + env: + PUPPETEER_SKIP_DOWNLOAD: "true" + PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: "true" + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: "yarn" + - name: Install dependencies + run: yarn install --immutable + - name: Test + run: yarn run test:unit --filter=!@langchain/community --filter=!@langchain/core --filter=!langchain + # run: yarn run test:unit -- --coverage + # - name: Upload coverage reports to Codecov + # uses: codecov/codecov-action@v3 + # env: + # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}