Skip to content

Release browser-cli v1.1.11 #40

Release browser-cli v1.1.11

Release browser-cli v1.1.11 #40

Workflow file for this run

name: ci
on:
pull_request:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- run: cargo fmt --all -- --check
- run: cargo test --all-targets --locked
- run: cargo clippy --all-targets --locked -- -D warnings
- name: Verify release target contract
run: |
! grep -q 'x86_64-unknown-linux' .github/workflows/release.yml
! grep -q 'x86_64-apple-darwin' .github/workflows/release.yml
grep -q 'aarch64-apple-darwin' .github/workflows/release.yml
grep -q 'x86_64-pc-windows-msvc' .github/workflows/release.yml
grep -q 'environment: macos-release' .github/workflows/release.yml
grep -q './scripts/sign_and_notarize_macos.sh' .github/workflows/release.yml
grep -q 'environment: cos-release' .github/workflows/release.yml
grep -q './scripts/upload-release-to-cos.sh cos-upload browser-cli' .github/workflows/release.yml
grep -q 'needs: \[build-macos, build-windows\]' .github/workflows/release.yml
! grep -q 'skills/lexmount-browser/bin/' .github/workflows/release.yml
- run: bash -n scripts/sign_and_notarize_macos.sh scripts/upload-release-to-cos.sh
- run: sh -n scripts/package-skill.sh skills/lexmount-browser/scripts/bootstrap.sh skills/lexmount-browser/scripts/doctor.sh
- name: Verify Skill platform selection and PATH isolation
run: |
test_dir="$(mktemp -d)"
trap 'rm -rf "$test_dir"' EXIT
mkdir -p "$test_dir/skill/scripts" "$test_dir/fake-path"
cp skills/lexmount-browser/scripts/doctor.sh "$test_dir/skill/scripts/doctor.sh"
ln -s /usr/bin/true "$test_dir/fake-path/browser-cli"
set +e
output="$(PATH="$test_dir/fake-path:/usr/bin:/bin" "$test_dir/skill/scripts/doctor.sh")"
status=$?
set -e
test "$status" -eq 2
test "$output" = '{"ok":false,"error":"unsupported_platform","message":"This Skill supports macOS arm64 through scripts/doctor.sh and Windows x64 through scripts/doctor.ps1."}'
! grep -q 'command -v browser-cli' skills/lexmount-browser/scripts/doctor.sh
! grep -q 'Get-Command browser-cli' skills/lexmount-browser/scripts/doctor.ps1
- name: Verify runtime packaging contract
run: |
! grep -R -E 'python3[[:space:]]|python[[:space:]]+-m|uv[[:space:]]' scripts skills .github/workflows
- name: Stage excluded Skill package fixtures
run: |
mkdir -p skills/lexmount-browser/bin
printf 'macOS arm64 package fixture' > skills/lexmount-browser/bin/browser-cli
printf 'Windows x64 package fixture' > skills/lexmount-browser/bin/browser-cli.exe
- run: ./scripts/package-skill.sh
- run: unzip -t dist/lexmount-browser.zip
- name: Verify SkillHub ZIP root
run: |
unzip -Z1 dist/lexmount-browser.zip | grep -qx 'SKILL.md'
! unzip -Z1 dist/lexmount-browser.zip | grep -q '^lexmount-browser/'
! unzip -Z1 dist/lexmount-browser.zip | grep -q '^bin/'
windows-bootstrap:
runs-on: windows-latest
steps:
- uses: actions/checkout@v5
- name: Bootstrap from COS with Windows PowerShell 5.1
shell: powershell
run: |
if ($PSVersionTable.PSVersion.Major -ne 5) { throw "Expected Windows PowerShell 5.1" }
$env:LEXMOUNT_BROWSER_CLI_INSTALL_DIR = Join-Path $env:RUNNER_TEMP "browser-cli-bootstrap"
& .\skills\lexmount-browser\scripts\bootstrap.ps1
& (Join-Path $env:LEXMOUNT_BROWSER_CLI_INSTALL_DIR "browser-cli.exe") version