Skip to content

chore(release): prepare v0.15.9 (#27) #121

chore(release): prepare v0.15.9 (#27)

chore(release): prepare v0.15.9 (#27) #121

Workflow file for this run

name: PR Checks
on:
pull_request:
push:
branches:
- main
permissions:
contents: read
jobs:
# Keep this check name stable for existing branch-protection rules.
smoke-and-tests:
name: smoke-and-tests
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 22
- name: Set up Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: .bun-version
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Smoke check
run: bun run smoke
unit-tests:
name: unit-tests
runs-on: blacksmith-4vcpu-ubuntu-2404
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-file: .bun-version
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Isolated unit test suite
run: bun run test:isolated
python-tests:
name: python-tests
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: "3.12"
cache: "pip"
cache-dependency-path: python/requirements.txt
- name: Install Python test dependencies
run: python -m pip install -r python/requirements.txt
- name: Python unit tests
run: python -m pytest -q python/tests
suspicious-pr-intent:
name: suspicious-pr-intent
runs-on: blacksmith-4vcpu-ubuntu-2404
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-file: .bun-version
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Suspicious PR intent scan
run: bun run security:pr-scan -- --base ${{ github.event.pull_request.base.sha || 'origin/main' }}
provider-tests:
name: provider-tests
runs-on: blacksmith-4vcpu-ubuntu-2404
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-file: .bun-version
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Provider tests
run: bun run test:isolated -- src/services/api/ src/utils/context.test.ts
provider-recommendation-tests:
name: provider-recommendation-tests
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 22
- name: Set up Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: .bun-version
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Provider recommendation tests
run: npm run test:provider-recommendation
web:
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 22
- name: Set up Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: .bun-version
- name: Install web dependencies
run: bun install --cwd web --frozen-lockfile
- name: Typecheck web
run: bun run --cwd web typecheck
- name: Build web
run: bun run --cwd web build
desktop-cli-artifacts:
name: desktop-cli-${{ matrix.target }}
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- target: aarch64-apple-darwin
runner: macos-15
- target: x86_64-apple-darwin
runner: macos-15-intel
- target: x86_64-pc-windows-msvc
runner: windows-latest
- target: x86_64-unknown-linux-gnu
runner: ubuntu-22.04
steps:
- name: Check out repository
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 24
- name: Set up Bun
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: .bun-version
- name: Install production dependency closure
run: bun install --frozen-lockfile --production
- name: Build and test desktop distribution
run: |
bun run build
bun run desktop:test
- name: Package native desktop CLI
run: bun run desktop:package -- --target "${{ matrix.target }}" --output-dir .artifacts/desktop-cli --node-executable node
- name: Upload native archive
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: desktop-cli-${{ matrix.target }}
path: .artifacts/desktop-cli/verboo-cli-*
if-no-files-found: error
retention-days: 7