Skip to content

feat: prepare public cli productization release #9

feat: prepare public cli productization release

feat: prepare public cli productization release #9

Workflow file for this run

name: CI
on:
workflow_dispatch:
push:
branches:
- main
- feat/**
- release/**
pull_request:
permissions:
contents: read
jobs:
docs:
name: Docs Consistency
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Check release-facing docs surface
shell: bash
run: |
set -euo pipefail
docs=(
README.md
README_EN.md
README_ES.md
README_PT.md
README_RU.md
README_JA.md
CHANGELOG.md
RELEASING.md
CONTRIBUTING.md
SUPPORT.md
SECURITY.md
.github/pull_request_template.md
)
banned='AGENTS\.md|CLAUDE\.md|type ccsw|type cxsw|type gcsw|1-2 tools|1 or 2 tools'
for f in "${docs[@]}"; do
if [[ ! -f "$f" ]]; then
echo "Missing required docs file: $f" >&2
exit 1
fi
if grep -nE "$banned" "$f"; then
echo "Found banned docs wording in $f" >&2
exit 1
fi
done
grep -q 'CHANGELOG.md' README.md
grep -q 'RELEASING.md' README.md
grep -q 'CHANGELOG.md' README_EN.md
grep -q 'RELEASING.md' README_EN.md
for f in README_ES.md README_PT.md README_RU.md README_JA.md; do
grep -q 'README_EN.md' "$f"
grep -q 'CHANGELOG.md' "$f"
grep -q 'RELEASING.md' "$f"
grep -q 'SUPPORT.md' "$f"
grep -q 'CONTRIBUTING.md' "$f"
grep -q 'SECURITY.md' "$f"
done
- name: Check workflow branch wording
shell: bash
run: |
set -euo pipefail
legacy_branch='mas''ter'
if grep -RInE "\\b${legacy_branch}\\b" .github/workflows; then
echo "Found unexpected legacy branch wording in workflows" >&2
exit 1
fi
lint:
name: Lint
runs-on: ubuntu-latest
needs: docs
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: ShellCheck
uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # 2.0.0
with:
scandir: "."
- name: actionlint
uses: raven-actions/actionlint@205b530c5d9fa8f44ae9ed59f341a0db994aa6f8 # v2
with:
shellcheck: false
pyflakes: false
test:
name: ${{ matrix.os }} / py${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
needs: lint
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
- macos-latest
python-version:
- "3.9"
- "3.11"
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
with:
python-version: ${{ matrix.python-version }}
- name: Bootstrap dry-run
run: bash bootstrap.sh --dry-run
- name: CLI help
run: python3 ccsw.py -h
- name: Unit tests
run: python3 -m unittest discover -s tests -q