feat(blog): MI355X DeepSeek-V4-Pro SGLang — 110.5x throughput per GPU in 26 days #1001
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: 'Tests (E2E)' | |
| on: | |
| pull_request: | |
| branches: [main, master] | |
| types: [opened, synchronize, ready_for_review] | |
| paths: | |
| - '.github/workflows/tests-e2e.yml' | |
| - 'package.json' | |
| - 'packages/app/**' | |
| - 'packages/constants/**' | |
| - 'packages/db/**' | |
| - 'pnpm-lock.yaml' | |
| - 'pnpm-workspace.yaml' | |
| - 'tsconfig.json' | |
| jobs: | |
| component-tests: | |
| if: ${{ !github.event.pull_request.draft }} | |
| timeout-minutes: 15 | |
| runs-on: blacksmith-8vcpu-ubuntu-2404 | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: '24' | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| env: | |
| CYPRESS_INSTALL_BINARY: '0' | |
| - name: Cache Cypress binary | |
| uses: useblacksmith/cache@c5fe29eb0efdf1cf4186b9f7fcbbcbc0cf025662 # v5.1.0 | |
| with: | |
| path: ~/.cache/Cypress | |
| key: cypress-binary-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| cypress-binary-${{ runner.os }}-${{ runner.arch }}- | |
| - name: Install Cypress binary if missing | |
| working-directory: packages/app | |
| run: pnpm exec cypress verify || pnpm exec cypress install | |
| - name: Run component tests | |
| working-directory: packages/app | |
| run: pnpm exec cypress run --component --browser chrome | |
| env: | |
| CI: true | |
| cypress: | |
| if: ${{ !github.event.pull_request.draft }} | |
| timeout-minutes: 15 | |
| runs-on: blacksmith-8vcpu-ubuntu-2404 | |
| permissions: | |
| contents: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| browser: [chrome, firefox] | |
| shard: [1, 2] | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6.0.5 | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: '24' | |
| cache: pnpm | |
| - uses: browser-actions/setup-firefox@fcf821c621167805dd63a29662bd7cb5676c81a8 # v1.7.1 | |
| if: matrix.browser == 'firefox' | |
| with: | |
| firefox-version: latest | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| env: | |
| CYPRESS_INSTALL_BINARY: '0' | |
| - name: Cache Cypress binary | |
| uses: useblacksmith/cache@c5fe29eb0efdf1cf4186b9f7fcbbcbc0cf025662 # v5.1.0 | |
| with: | |
| path: ~/.cache/Cypress | |
| key: cypress-binary-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('**/pnpm-lock.yaml') }} | |
| restore-keys: | | |
| cypress-binary-${{ runner.os }}-${{ runner.arch }}- | |
| - name: Install Cypress binary if missing | |
| working-directory: packages/app | |
| run: pnpm exec cypress verify || pnpm exec cypress install | |
| - name: Build app | |
| run: pnpm build | |
| env: | |
| E2E_FIXTURES: '1' | |
| - name: Run integration tests | |
| uses: cypress-io/github-action@c495c3ddffba403ba11be95fffb67e25203b3799 # v7.1.10 | |
| with: | |
| working-directory: packages/app | |
| install: false | |
| start: pnpm start | |
| wait-on: 'http://localhost:3000' | |
| browser: ${{ matrix.browser }} | |
| publish-summary: false | |
| env: | |
| CI: true | |
| E2E_FIXTURES: '1' | |
| # cypress-split picks the subset of specs for this shard. | |
| # SPLIT_INDEX1 is 1-based to match matrix.shard values [1, 2]. | |
| # SPLIT_FILE seeds the balance from observed timings; | |
| # SPLIT_OUTPUT_FILE redirects on-disk updates to a throwaway path | |
| # so CI never tries to mutate the committed timings.json. | |
| SPLIT: 2 | |
| SPLIT_INDEX1: ${{ matrix.shard }} | |
| SPLIT_FILE: timings.json | |
| SPLIT_OUTPUT_FILE: /tmp/cypress-split-out.json | |
| SPLIT_SUMMARY: 'false' |