name: build KCC for osx legacy on: workflow_dispatch: push: tags: - "v*.*.*" # Don't trigger if it's just a documentation update paths-ignore: - '**.md' - '**.MD' - '**.yml' - '**.sh' - 'docs/**' - 'Dockerfile' - 'LICENSE' - '.gitattributes' - '.gitignore' - '.dockerignore' jobs: build: strategy: matrix: os: [ macos-15-intel ] runs-on: ${{ matrix.os }} env: # We need the official Python, because the GA ones only support newer macOS versions # The deployment target is picked up by the Python build tools automatically PYTHON_VERSION: 3.11.9 MACOSX_DEPLOYMENT_TARGET: '10.14' steps: - uses: actions/checkout@v7 - name: Get Python run: curl https://www.python.org/ftp/python/3.11.9/python-3.11.9-macos11.pkg -o "python.pkg" - name: Install Python run: | sudo installer -pkg python.pkg -target / - name: Install Python dependencies run: | python3 --version python -m pip install "pip @ https://files.pythonhosted.org/packages/3f/06/3e4420302363fbb71be3c7f35ce042f54bfca330e3e66b3a2e3c4cca579f/pip-26.2.2-py3-none-any.whl#sha256=fd7f4dfa8190e014013b9f08f3e973f4e4c26ffd179a204895533a7254813a70" python -m pip install 'certifi>=2026.10.19' pip3 install --upgrade pip pyinstaller pip3 install --upgrade -r requirements-osx-legacy.txt ./gen_ui_files.sh - uses: actions/setup-node@v7 with: node-version: 24 check-latest: true - run: npm install -g appdmg - name: build binary run: | python3 setup.py build_binary - name: upload build uses: actions/upload-artifact@v7 with: name: osx-build-${{ runner.arch }} path: dist/*.dmg - name: Release uses: softprops/action-gh-release@v3 if: startsWith(github.ref, 'refs/tags/') with: prerelease: true generate_release_notes: false files: | LICENSE.txt dist/*.dmg