Skip to content

Release 1.1.5

Release 1.1.5 #280

Workflow file for this run

name: CI
on:
push:
branches: [main, master, develop]
pull_request:
branches: [main, master, develop]
permissions:
contents: read
jobs:
python:
name: Python ${{ matrix.python-version }} / ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.10", "3.11", "3.12"]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: "20.19.0"
cache: npm
cache-dependency-path: apps/package-lock.json
- name: Install tmux
run: |
if [ "$RUNNER_OS" = "Linux" ]; then
sudo apt-get update
sudo apt-get install -y tmux
elif [ "$RUNNER_OS" = "macOS" ]; then
brew install tmux
fi
- name: Install Python package
env:
CC_BRANCH_SKIP_WEBUI_BUILD: "1"
run: |
python -m pip install --upgrade pip
python -m pip install -e .
- name: Install web dependencies
working-directory: apps
run: npm ci
- name: Build bundled Web UI assets for server tests
run: python scripts/build-webui.py
- name: Run Python tests
run: python -m unittest discover tests
- name: Smoke test CLI
run: |
cc-branch --help
ccb --help
frontend:
name: Web UI
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: "20.19.0"
cache: npm
cache-dependency-path: apps/package-lock.json
- name: Install web dependencies
working-directory: apps
run: npm ci
- name: Lint web UI
working-directory: apps/web
run: npm run lint
- name: Test web UI
working-directory: apps/web
run: npm run test
- name: Build web UI
working-directory: apps/web
run: npm run build
python-typecheck:
name: Python typecheck
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install Python package with dev tools
env:
CC_BRANCH_SKIP_WEBUI_BUILD: "1"
run: |
python -m pip install --upgrade pip
python -m pip install -e ".[dev]"
- name: Typecheck Python
run: |
python -m mypy cc_branch
python -m mypy --platform linux cc_branch
python -m mypy --platform win32 cc_branch
package:
name: Python package
runs-on: ubuntu-latest
needs: [python, frontend, python-typecheck]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: "20.19.0"
cache: npm
cache-dependency-path: apps/package-lock.json
- name: Install web dependencies
working-directory: apps
run: npm ci
- name: Build bundled Web UI
run: python scripts/build-webui.py
- name: Build and check Python package
run: |
python -m pip install --upgrade pip
python -m pip install build twine
python -m build
twine check dist/*
- name: Build npm package artifact
run: python scripts/build-npm-package.py
- name: Upload package artifacts
uses: actions/upload-artifact@v7
with:
name: python-dist
path: |
dist/cc_branch-*
dist/cc-branch-*.tgz
desktop-sidecar:
name: Desktop sidecar script
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Validate sidecar build script
run: |
python -m py_compile cc_branch/desktop_backend.py scripts/build-desktop-sidecar.py packaging/desktop/cc_branch_backend.py
python scripts/build-desktop-sidecar.py --help