feat: support conversation isolation #241
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| pull_request: | |
| branches: ['main'] | |
| paths: | |
| - 'github/**' | |
| - 'idl/**' | |
| - 'frontend/**' | |
| - 'common/**' | |
| - 'rush.json' | |
| # Allows you to run this workflow manually from the Actions tab | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| actions: read | |
| jobs: | |
| setup: | |
| strategy: | |
| matrix: | |
| include: | |
| - NodeVersion: 22.16.0 | |
| NodeVersionDisplayName: 22 | |
| OS: ubuntu-latest | |
| name: Setup and Install Dependencies | |
| runs-on: ${{ matrix.OS }} | |
| outputs: | |
| cache_file: ${{ steps.process-files.outputs.cache_file }} | |
| matrix_node_version: ${{ matrix.NodeVersion }} | |
| matrix_os: ${{ matrix.OS }} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 1 | |
| - name: Get changed files | |
| id: changed-files | |
| uses: tj-actions/changed-files@v45 | |
| - name: Process changed files | |
| id: process-files | |
| run: | | |
| # Get all change files | |
| all_files="${{ steps.changed-files.outputs.all_changed_files }}" | |
| # Filter out files in the common/changes directory | |
| filtered_files="" | |
| for file in $all_files; do | |
| if [[ ! "$file" =~ ^common/changes/.* ]]; then | |
| if [ -z "$filtered_files" ]; then | |
| filtered_files="$file" | |
| else | |
| filtered_files="$filtered_files $file" | |
| fi | |
| fi | |
| done | |
| # Create cached files in JSON format | |
| echo "[$( echo "$filtered_files" | sed 's/ /", "/g' | sed 's/^/"/' | sed 's/$/"/' )]" > changed-files-cache.json | |
| # Output cache file path for subsequent steps | |
| echo "cache_file=changed-files-cache.json" >> $GITHUB_OUTPUT | |
| echo "过滤前文件数量: $(echo $all_files | wc -w)" | |
| echo "过滤后文件数量: $(echo $filtered_files | wc -w)" | |
| echo "已生成缓存文件: changed-files-cache.json" | |
| - name: Config Git User | |
| # should be turn to ci user | |
| run: | | |
| git config --local user.name "flow_bot" | |
| git config --local user.email "flow_bot@bytedance.com" | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ matrix.NodeVersion }} | |
| - name: Upload changed files cache | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: changed-files-cache | |
| path: changed-files-cache.json | |
| retention-days: 1 | |
| build: | |
| needs: setup | |
| runs-on: ${{ needs.setup.outputs.matrix_os }} | |
| name: Increment Build | |
| env: | |
| BUILD_BRANCH: ${{ github.head_ref || github.ref_name }} | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 1 | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ needs.setup.outputs.matrix_node_version }} | |
| - name: Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| common/temp/pnpm-local | |
| common/temp/pnpm-store | |
| common/temp/install-run | |
| key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-rush-store-main | |
| ${{ runner.os }}-rush-store | |
| - name: Download changed files cache | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: changed-files-cache | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libasound2-dev | |
| node common/scripts/install-run-rush.js install --to tag:core | |
| node common/scripts/install-run-rush.js update-autoinstaller --name plugins | |
| node common/scripts/install-run-rush.js increment --action install -p "${{ needs.setup.outputs.cache_file }}" | |
| - name: Increment Build | |
| run: node common/scripts/install-run-rush.js increment --action build -p "${{ needs.setup.outputs.cache_file }}" | |
| test: | |
| needs: setup | |
| runs-on: ${{ needs.setup.outputs.matrix_os }} | |
| name: Increment Test Coverage | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 1 | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ needs.setup.outputs.matrix_node_version }} | |
| - name: Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| common/temp/pnpm-local | |
| common/temp/pnpm-store | |
| common/temp/install-run | |
| key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-rush-store-main | |
| ${{ runner.os }}-rush-store | |
| - name: Download changed files cache | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: changed-files-cache | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libasound2-dev | |
| node common/scripts/install-run-rush.js install --to tag:core | |
| node common/scripts/install-run-rush.js update-autoinstaller --name plugins | |
| node common/scripts/install-run-rush.js increment --action install -p "${{ needs.setup.outputs.cache_file }}" | |
| - name: Increment Test:cov | |
| run: node common/scripts/install-run-rush.js increment --action test:cov -p "${{ needs.setup.outputs.cache_file }}" | |
| # TODO: should resolve later | |
| # - name: Upload coverage reports | |
| # uses: codecov/codecov-action@v4 | |
| # with: | |
| # token: ${{ secrets.CODECOV_TOKEN }} | |
| # fail_ci_if_error: true | |
| # verbose: true | |
| lint: | |
| needs: setup | |
| runs-on: ${{ needs.setup.outputs.matrix_os }} | |
| name: Increment Lint | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 1 | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ needs.setup.outputs.matrix_node_version }} | |
| - name: Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| common/temp/pnpm-local | |
| common/temp/pnpm-store | |
| common/temp/install-run | |
| key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-rush-store-main | |
| ${{ runner.os }}-rush-store | |
| - name: Download changed files cache | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: changed-files-cache | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libasound2-dev | |
| node common/scripts/install-run-rush.js install --to tag:core | |
| node common/scripts/install-run-rush.js update-autoinstaller --name plugins | |
| node common/scripts/install-run-rush.js increment --action install -p "${{ needs.setup.outputs.cache_file }}" | |
| - name: Increment Lint | |
| run: node common/scripts/install-run-rush.js increment --action lint -p "${{ needs.setup.outputs.cache_file }}" | |
| ts-check: | |
| needs: setup | |
| runs-on: ${{ needs.setup.outputs.matrix_os }} | |
| name: Increment TS Check | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 1 | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ needs.setup.outputs.matrix_node_version }} | |
| - name: Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| common/temp/pnpm-local | |
| common/temp/pnpm-store | |
| common/temp/install-run | |
| key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-rush-store-main | |
| ${{ runner.os }}-rush-store | |
| - name: Download changed files cache | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: changed-files-cache | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libasound2-dev | |
| node common/scripts/install-run-rush.js install --to tag:core | |
| node common/scripts/install-run-rush.js update-autoinstaller --name plugins | |
| node common/scripts/install-run-rush.js increment --action install -p "${{ needs.setup.outputs.cache_file }}" | |
| - name: Increment TS Check | |
| run: node common/scripts/install-run-rush.js increment --action ts-check -p "${{ needs.setup.outputs.cache_file }}" | |
| package-audit: | |
| needs: setup | |
| runs-on: ${{ needs.setup.outputs.matrix_os }} | |
| name: Increment Package Audit | |
| steps: | |
| - uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 1 | |
| - uses: actions/setup-node@v3 | |
| with: | |
| node-version: ${{ needs.setup.outputs.matrix_node_version }} | |
| - name: Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| common/temp/pnpm-local | |
| common/temp/pnpm-store | |
| common/temp/install-run | |
| key: ${{ runner.os }}-rush-store-${{ hashFiles('common/config/subspaces/**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-rush-store-main | |
| ${{ runner.os }}-rush-store | |
| - name: Download changed files cache | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: changed-files-cache | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libasound2-dev | |
| node common/scripts/install-run-rush.js install --to tag:core | |
| node common/scripts/install-run-rush.js update-autoinstaller --name plugins | |
| node common/scripts/install-run-rush.js increment --action install -p "${{ needs.setup.outputs.cache_file }}" | |
| - name: Increment Package Audit | |
| run: node common/scripts/install-run-rush.js increment --action package-audit -p "${{ needs.setup.outputs.cache_file }}" |