Skip to content

feat(ui): add borderless chrome mode #845

feat(ui): add borderless chrome mode

feat(ui): add borderless chrome mode #845

Workflow file for this run

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