feat(ui): add borderless chrome mode #845
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: | |
| env: | |
| SKIP_INSTALL_SIMPLE_GIT_HOOKS: "1" | |
| concurrency: | |
| group: pr-ci-${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| changes: | |
| name: Detect code changes | |
| runs-on: ubuntu-latest | |
| outputs: | |
| code: ${{ steps.detect.outputs.code_changed }} | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Detect code changes | |
| id: detect | |
| env: | |
| BASE_SHA: ${{ github.event.pull_request.base.sha }} | |
| HEAD_SHA: ${{ github.sha }} | |
| run: .github/scripts/detect-code-changes.sh "$BASE_SHA" "$HEAD_SHA" | |
| changeset-status: | |
| name: Release-note changeset | |
| needs: changes | |
| if: needs.changes.outputs.code == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| fetch-depth: 0 | |
| - name: Set up Bun | |
| uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 | |
| with: | |
| bun-version: 1.3.10 | |
| - name: Verify release-note changeset | |
| run: bun run changeset:status -- --since=origin/main | |
| windows-compat: | |
| name: Windows compatibility | |
| needs: changes | |
| if: needs.changes.outputs.code == 'true' | |
| runs-on: windows-latest | |
| steps: | |
| - name: Disable automatic CRLF conversion | |
| run: git config --global core.autocrlf false | |
| - name: Check out repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up Bun | |
| uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 | |
| with: | |
| bun-version: 1.3.10 | |
| - name: Set up Node | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: 22 | |
| - name: Install Jujutsu | |
| uses: taiki-e/install-action@213ccc1a076163c093f914550b94feb90fab916d # v2.79.2 | |
| with: | |
| tool: jj-cli | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Format check | |
| run: bun run format:check | |
| - name: Lint | |
| run: bun run lint | |
| - name: Typecheck | |
| run: bun run typecheck | |
| - name: Theme contrast check | |
| run: bun run test:theme-contrast | |
| - name: Test suite | |
| run: bun test ./src ./packages ./scripts ./test/cli ./test/session | |
| pr-validate: | |
| name: Typecheck + Test + Smoke | |
| needs: changes | |
| if: needs.changes.outputs.code == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - name: Set up Bun | |
| uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0 | |
| with: | |
| bun-version: 1.3.10 | |
| - name: Set up Node | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: 22 | |
| - name: Install Jujutsu | |
| uses: taiki-e/install-action@213ccc1a076163c093f914550b94feb90fab916d # v2.79.2 | |
| with: | |
| tool: jj-cli | |
| - name: Install Sapling | |
| run: | | |
| sudo apt-get install -y xz-utils | |
| sudo mkdir -p /opt/sapling | |
| SAPLING_URL="https://github.com/facebook/sapling/releases/download/0.2.20260317-201835%2B0234c21f/sapling-0.2.20260317-201835%2B0234c21f-linux-x64.tar.xz" | |
| SAPLING_SHA256="2dca0b964a2f3e2e3ad3f4f01794dc7e829de4aedddb2798a7bae883ce6cd71f" | |
| curl -fsSL "$SAPLING_URL" -o /tmp/sapling.tar.xz | |
| echo "$SAPLING_SHA256 /tmp/sapling.tar.xz" | sha256sum --check | |
| sudo tar -xJf /tmp/sapling.tar.xz -C /opt/sapling | |
| sudo ln -s /opt/sapling/sl /usr/local/bin/sl | |
| sl version | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Format check | |
| run: bun run format:check | |
| - name: Lint | |
| run: bun run lint | |
| - name: Typecheck | |
| run: bun run typecheck | |
| - name: Theme contrast check | |
| run: bun run test:theme-contrast | |
| - name: Test suite | |
| run: bun run test | |
| - name: PTY integration tests | |
| run: bun run test:integration | |
| - name: Verify terminal tools | |
| run: | | |
| command -v script | |
| command -v timeout | |
| - name: TTY smoke tests | |
| run: bun run test:tty-smoke | |
| - name: Build npm runtime bundle | |
| run: bun run build:npm | |
| - name: Verify npm pack output | |
| run: bun run check:pack | |
| - name: Simulate global npm install | |
| run: | | |
| pkg_dir="$(mktemp -d)" | |
| install_dir="$(mktemp -d)" | |
| node_dir="$(dirname "$(command -v node)")" | |
| npm pack --pack-destination "$pkg_dir" >/dev/null | |
| pkg="$(find "$pkg_dir" -maxdepth 1 -name 'hunkdiff-*.tgz' | head -n1)" | |
| npm install -g --prefix "$install_dir" "$pkg" | |
| PATH="$install_dir/bin:$node_dir:/usr/bin:/bin" | |
| if command -v bun >/dev/null 2>&1; then | |
| echo "bun unexpectedly available on the sanitized PATH" >&2 | |
| exit 1 | |
| fi | |
| hunk --help | grep 'Usage: hunk' | |
| - name: Stage prebuilt npm packages | |
| run: bun run build:prebuilt:npm | |
| - name: Verify staged prebuilt packs | |
| run: bun run check:prebuilt-pack | |
| - name: Smoke test prebuilt global install | |
| run: bun run smoke:prebuilt-install |