feat(0.12.3-alpha): dz setup dz -- pip install just works, and the shell #78
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [ main, dev ] | |
| tags-ignore: | |
| - '**' | |
| pull_request: | |
| branches: [ main, dev ] | |
| jobs: | |
| test: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| python-version: ['3.9', '3.10', '3.11', '3.12', '3.13'] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive # materialize submodule tools (e.g. core/listall) for discovery/smoke tests | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Cache dependencies | |
| uses: actions/cache@v5 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-${{ hashFiles('**/pyproject.toml') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pip- | |
| - name: Install package | |
| run: | | |
| python -m pip install --upgrade pip | |
| # dazzlecmd-lib is a published PyPI dependency -- its source lives in its | |
| # own repo (DazzleLib/dazzlecmd-lib), not vendored here -- so the editable | |
| # install below pulls it from the index. | |
| pip install -e ".[dev]" | |
| - name: Smoke test - import | |
| run: | | |
| python -c "import dazzlecmd; print(dazzlecmd.__version__)" | |
| - name: Smoke test - CLI version | |
| run: | | |
| dz --version | |
| - name: Smoke test - list tools | |
| run: | | |
| dz list | |
| - name: Smoke test - kit list | |
| run: | | |
| dz kit list | |
| - name: Lint with flake8 (syntax errors only) | |
| run: | | |
| pip install flake8 | |
| # Exclude vendored code: bundled tool deps under */_lib/ (e.g. safedel's | |
| # preservelib/unctools, relocated under src/dazzlecmd/ by #58) AND our | |
| # in-development vendored CLI libs under _vendor/ (help_lib, log_lib -- | |
| # destined for dazzle_helplib / dazzle_loglib). Vendored = not style-gated. | |
| flake8 src/dazzlecmd/ --count --select=E9,F63,F7,F82 --show-source --statistics --extend-exclude=_lib,_vendor | |
| - name: Lint with flake8 (advisory) | |
| run: | | |
| flake8 src/dazzlecmd/ --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics --extend-exclude=_lib,_vendor | |
| continue-on-error: true | |
| build: | |
| runs-on: ubuntu-latest | |
| needs: test | |
| steps: | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: recursive # materialize submodule tools (e.g. core/listall) so the built package ships them | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.12' | |
| - name: Build package | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install build | |
| python -m build | |
| - name: Check package | |
| run: | | |
| pip install twine | |
| twine check dist/* |