- install.py / uninstall.py: full Python installer for Linux, macOS, Windows
- detect_platform.py: shared Inkscape config path detection
- Windows config path: %APPDATA%\inkscape (native/winget/scoop) or
%LOCALAPPDATA%\Packages\org.inkscape.Inkscape* (MS Store)
- Windows desktop: Start Menu .lnk via PowerShell WScript.Shell COM object
- macOS: XDG / ~/Library/Application Support detection, no desktop step
- install.sh / uninstall.sh: reduced to one-line exec python3 wrappers
- eliminates SC1091 (source not followed) and SC2155 (declare+assign)
- scripts/detect_platform.sh: export INKSCAPE_CONFIG / INKSCAPE_INSTALL_METHOD
- fixes SC2034 (variables appear unused to shellcheck)
- assets/illuscape.ico: pre-rendered 16/32/48/64/128/256px ICO (ImageMagick)
- tests/test_install.py: pytest integration tests replacing test_install.bats
- cross-platform fake inkscape injected via PATH
- 12 tests covering backup, palettes, templates, prefs, uninstall restore
- ci.yml: add windows-latest matrix leg; shellcheck/inkscape Linux-only;
bats removed in favour of pytest integration tests; 27 tests total
47 lines
1 KiB
YAML
47 lines
1 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
- os: ubuntu-22.04
|
|
- os: ubuntu-24.04
|
|
- os: windows-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11"
|
|
|
|
- name: Install test deps (Linux)
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
pip install pytest
|
|
sudo apt-get install -y shellcheck inkscape
|
|
|
|
- name: Install test deps (Windows)
|
|
if: runner.os == 'Windows'
|
|
run: pip install pytest
|
|
|
|
- name: Shellcheck (Linux only)
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
shellcheck install.sh
|
|
shellcheck uninstall.sh
|
|
shellcheck scripts/detect_platform.sh
|
|
|
|
- name: Python unit tests
|
|
run: pytest tests/test_merge_prefs.py -v
|
|
|
|
- name: Python integration tests
|
|
run: pytest tests/test_install.py -v
|