feat: add multi insert and sorting collections from a-z #39
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: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: [main] | |
| tags: ['v*'] | |
| workflow_dispatch: | |
| jobs: | |
| quality: | |
| name: typecheck / lint / format / test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Typecheck | |
| run: npm run typecheck | |
| - name: Lint | |
| run: npm run lint | |
| - name: Format check | |
| run: npm run format:check | |
| - name: Test | |
| run: npm test | |
| package: | |
| name: package (${{ matrix.os }}) | |
| needs: quality | |
| if: github.ref_type != 'tag' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: windows-latest | |
| target: win | |
| artifact: mongobench-windows | |
| - os: ubuntu-latest | |
| target: linux | |
| artifact: mongobench-linux | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| # `electron-vite build` emits the bundles into `out/`; electron-builder | |
| # then packages them into an NSIS installer (Windows) or AppImage | |
| # (Linux). No code signing — artifacts are for direct download. | |
| - name: Build distributable | |
| run: npm run dist:${{ matrix.target }} | |
| env: | |
| GH_TOKEN: '' | |
| - name: Upload distributable | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.artifact }} | |
| path: | | |
| dist/*.exe | |
| dist/*.AppImage | |
| if-no-files-found: error | |
| retention-days: 14 | |
| release: | |
| name: release (${{ matrix.os }}) | |
| needs: quality | |
| if: github.ref_type == 'tag' | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: windows-latest | |
| target: win | |
| - os: ubuntu-latest | |
| target: linux | |
| runs-on: ${{ matrix.os }} | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| # `--publish always` uploads the installer + latest.yml / | |
| # latest-linux.yml metadata to the GitHub Release matching the tag. | |
| # electron-updater reads latest.yml at runtime to detect new versions. | |
| - name: Build and publish | |
| run: npm run dist:${{ matrix.target }} -- --publish always | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} |