perf(SeqManager): Use std::vector rather than std::set #6628
Workflow file for this run
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: mediasoup-node | |
| on: | |
| push: | |
| branches: [v3] | |
| paths: | |
| - 'node/**' | |
| - 'worker/**' | |
| - 'package.json' | |
| - 'package-lock.json' | |
| - 'tsconfig.json' | |
| - 'npm-scripts.mjs' | |
| - '.github/workflows/mediasoup-node.yaml' | |
| pull_request: | |
| paths: | |
| - 'node/**' | |
| - 'worker/**' | |
| - 'package.json' | |
| - 'package-lock.json' | |
| - 'tsconfig.json' | |
| - 'npm-scripts.mjs' | |
| - '.github/workflows/mediasoup-node.yaml' | |
| workflow_dispatch: | |
| concurrency: | |
| # Cancel a currently running workflow from the same PR, branch or tag when a | |
| # new workflow is triggered. | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| ci: | |
| strategy: | |
| # Here we want to see all errors, not just the first one. | |
| fail-fast: false | |
| matrix: | |
| build: | |
| - os: ubuntu-24.04 | |
| node: 22 | |
| cc: gcc | |
| cxx: g++ | |
| - os: ubuntu-24.04 | |
| node: 24 | |
| cc: gcc | |
| cxx: g++ | |
| meson_args: '-Db_sanitize=address' | |
| npm-audit: true | |
| run-lint: true | |
| run-publish-dry-run: true | |
| - os: ubuntu-24.04 | |
| node: 24 | |
| cc: gcc | |
| cxx: g++ | |
| - os: ubuntu-24.04 | |
| node: 24 | |
| cc: clang | |
| cxx: clang++ | |
| meson_args: '-Db_sanitize=undefined' | |
| - os: ubuntu-24.04-arm | |
| node: 22 | |
| cc: gcc | |
| cxx: g++ | |
| - os: ubuntu-24.04-arm | |
| node: 24 | |
| cc: gcc | |
| cxx: g++ | |
| meson_args: '-Db_sanitize=address' | |
| # In Ubuntu 24.04 ARM in Debug build type with ASAN, createWorker() | |
| # takes too long. | |
| # See https://github.com/versatica/mediasoup/pull/1503. | |
| skip-test-in-debug-build-type: true | |
| - os: macos-15 | |
| node: 24 | |
| cc: clang | |
| cxx: clang++ | |
| - os: windows-2022 | |
| node: 22 | |
| cc: cl | |
| cxx: cl | |
| - os: windows-2025 | |
| node: 24 | |
| cc: cl | |
| cxx: cl | |
| build-type: | |
| - Release | |
| - Debug | |
| runs-on: ${{ matrix.build.os }} | |
| timeout-minutes: 60 | |
| env: | |
| CC: ${{ matrix.build.cc }} | |
| CXX: ${{ matrix.build.cxx }} | |
| MEDIASOUP_SKIP_WORKER_PREBUILT_DOWNLOAD: 'true' | |
| MEDIASOUP_LOCAL_DEV: 'true' | |
| MEDIASOUP_BUILDTYPE: ${{ matrix.build-type }} | |
| MESON_ARGS: ${{ matrix.build.meson_args }} | |
| # Disable leak detection because it's detected by the tool flatc uses to build. | |
| # NOTE: This env only affects when 'b_sanitize' args are given in `meson_args`. | |
| ASAN_OPTIONS: 'detect_leaks=0 symbolize=1 detect_stack_use_after_return=1 strict_init_order=1 check_initialization_order=1 detect_container_overflow=1' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v6 | |
| - name: Node.js | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.build.node }} | |
| - name: Configure cache | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.npm | |
| key: ${{ matrix.build.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
| restore-keys: | | |
| ${{ matrix.build.os }}-node- | |
| - name: npm ci --foreground-scripts | |
| run: npm ci --foreground-scripts | |
| - if: ${{ matrix.build.npm-audit }} | |
| name: npm audit --omit dev | |
| run: npm audit --omit dev | |
| - if: ${{ matrix.build.npm-audit }} | |
| name: npm audit --prefix worker/scripts | |
| run: npm audit --prefix worker/scripts | |
| - if: ${{ matrix.build-type == 'Release' }} | |
| name: npm run worker:prebuild | |
| run: npm run worker:prebuild | |
| - name: npm run worker:prebuild-name | |
| run: npm run worker:prebuild-name | |
| - if: ${{ matrix.build.run-lint }} | |
| name: npm run lint:node | |
| run: npm run lint:node | |
| - if: ${{ !matrix.build.skip-test-in-debug-build-type || matrix.build-type != 'Debug' }} | |
| name: npm run test:node | |
| run: npm run test:node | |
| # Only in Release build type to avoid running it twice (Release + Debug). | |
| - if: ${{ matrix.build.run-publish-dry-run && matrix.build-type == 'Release' }} | |
| name: npm run publish:dry-run | |
| run: npm run publish:dry-run |