Skip to content

Codex titles reach the thread store the status bar actually reads #24

Codex titles reach the thread store the status bar actually reads

Codex titles reach the thread store the status bar actually reads #24

Workflow file for this run

name: CI
on:
push:
branches:
- main
pull_request:
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
linux:
name: Linux ${{ matrix.os }} / Python ${{ matrix.python }}
strategy:
fail-fast: false
matrix:
os:
- ubuntu-22.04
- ubuntu-24.04
python:
- "3.10"
- "3.11"
- "3.12"
- "3.13"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
with:
python-version: ${{ matrix.python }}
- name: Check Bash syntax
run: |
bash -n install.sh
bash -n bin/*
bash -n bashrc/shpool.bashrc
bash -n deploy/session-kit-launcher
bash -n tests/run
- name: Check public working tree
run: tools/public-scan .
- name: Run tests
run: tests/run
quality:
name: Quality, privacy, and public export
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
with:
python-version: "3.13"
- name: Install quality tools
run: |
sudo apt-get update
sudo apt-get install --yes shellcheck
python -m pip install --requirement requirements-dev.txt
- name: Check shell
run: |
shellcheck install.sh bin/* bashrc/shpool.bashrc \
deploy/session-kit-launcher tests/run
- name: Check Python
env:
RUFF_CACHE_DIR: ${{ runner.temp }}/ruff-cache
run: |
ruff check .
ruff check tools/build-public-tree tools/build-release-artifact \
tools/check-doc-links tools/public-scan
ruff format --check lib/sessionkit_inventory/__init__.py \
lib/sessionkit_inventory/common.py \
lib/sessionkit_inventory/providers.py \
tests/test_doc_links.py tests/test_facade.py \
tests/test_public_export.py tests/test_public_scan.py \
tests/test_release_artifact.py tests/support.py
ruff format --check tools/build-public-tree tools/build-release-artifact \
tools/check-doc-links tools/public-scan
python -m compileall -q lib tests
python -m py_compile tools/build-public-tree \
tools/build-release-artifact tools/check-doc-links tools/public-scan
- name: Report legacy type baseline
continue-on-error: true
env:
MYPY_CACHE_DIR: ${{ runner.temp }}/mypy-cache
run: |
mypy --ignore-missing-imports \
lib/session_inventory.py lib/sessionkit_inventory
- name: Check documentation links
run: tools/check-doc-links
- name: Scan working tree and reachable history
run: |
tools/public-scan .
if [[ -f SOURCE.json ]]; then
tools/public-scan . --git-history --private-markers
else
tools/public-scan . --git-history
fi
- name: Build and test exact public export
run: |
tools/build-public-tree \
--commit "$GITHUB_SHA" \
--destination "$RUNNER_TEMP/session-kit-public"
git -C "$RUNNER_TEMP/session-kit-public" init --quiet
git -C "$RUNNER_TEMP/session-kit-public" config \
user.name "Session Kit CI"
git -C "$RUNNER_TEMP/session-kit-public" config \
user.email "ci@example.invalid"
git -C "$RUNNER_TEMP/session-kit-public" add .
git -C "$RUNNER_TEMP/session-kit-public" commit \
--quiet --message "Public export under test"
"$RUNNER_TEMP/session-kit-public/tests/run"
- name: Build reproducible release preparation files
run: |
tools/build-release-artifact \
--commit "$GITHUB_SHA" \
--output-dir "$RUNNER_TEMP/artifacts-one"
tools/build-release-artifact \
--commit "$GITHUB_SHA" \
--output-dir "$RUNNER_TEMP/artifacts-two"
diff -qr "$RUNNER_TEMP/artifacts-one" "$RUNNER_TEMP/artifacts-two"
cd "$RUNNER_TEMP/artifacts-one"
sha256sum --check session-kit-"$GITHUB_SHA".sha256
- name: Enforce tested Python coverage
env:
COVERAGE_FILE: ${{ runner.temp }}/coverage
run: |
coverage run --branch --source=lib \
-m unittest discover -s tests -t .
coverage report --skip-empty --fail-under=70
shpool-patch:
name: Optional shpool patch applies and builds
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- name: Check patch against shpool 0.11.0
run: |
git clone --branch v0.11.0 --depth 1 \
https://github.com/shell-pool/shpool.git \
"$RUNNER_TEMP/shpool"
test "$(git -C "$RUNNER_TEMP/shpool" rev-parse HEAD)" = \
fe2d11595ff255810523b0868159dec051e303f1
git -C "$RUNNER_TEMP/shpool" apply --check \
"$GITHUB_WORKSPACE/shpool-patch/0001-heartbeat-ack-timeout-is-not-fatal.patch"
git -C "$RUNNER_TEMP/shpool" apply \
"$GITHUB_WORKSPACE/shpool-patch/0001-heartbeat-ack-timeout-is-not-fatal.patch"
cargo build --locked --release --manifest-path \
"$RUNNER_TEMP/shpool/Cargo.toml" --bin shpool