Skip to content

Commit b1b53a1

Browse files
committed
fix: bundle build
1 parent 9299cfd commit b1b53a1

4 files changed

Lines changed: 88 additions & 3 deletions

File tree

‎.github/workflows/tests.yaml‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,21 @@ jobs:
6868
run: uv sync --group doc
6969
- run: uv run sphinx-build -W --keep-going doc build/sphinx/html
7070

71+
bundle:
72+
runs-on: ubuntu-latest
73+
steps:
74+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
75+
- name: Install uv
76+
uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
77+
with:
78+
enable-cache: true
79+
- name: Install dependencies
80+
run: uv sync --group bundle
81+
- name: Build binary
82+
run: uv run pyinstaller --clean --log-level WARN scim2.spec
83+
- name: Check binary
84+
run: ./dist/scim2 --help
85+
7186
nix:
7287
runs-on: ubuntu-latest
7388
steps:

‎.gitignore‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,3 @@ htmlcov
1111
build
1212
dist
1313
.vscode
14-
15-
# pyinstaller spec file
16-
*.spec

‎pyproject.toml‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,9 @@ force-single-line = true
118118
[tool.ruff.format]
119119
docstring-code-format = true
120120

121+
[tool.codespell]
122+
ignore-words-list = "datas"
123+
121124
[tool.mypy]
122125
plugins = [
123126
"pydantic.mypy"

‎scim2.spec‎

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# -*- mode: python ; coding: utf-8 -*-
2+
3+
import os
4+
5+
a = Analysis(
6+
["scim2_cli/__init__.py"],
7+
pathex=[],
8+
binaries=[],
9+
data=[],
10+
hiddenimports=[],
11+
hookspath=[],
12+
hooksconfig={},
13+
runtime_hooks=[],
14+
excludes=[],
15+
noarchive=False,
16+
optimize=1,
17+
)
18+
pyz = PYZ(a.pure)
19+
20+
# Use PYINSTALLER_ONEDIR=1 for faster builds
21+
onedir_mode = os.environ.get("PYINSTALLER_ONEDIR", "0") == "1"
22+
23+
if onedir_mode:
24+
exe = EXE(
25+
pyz,
26+
a.scripts,
27+
[],
28+
exclude_binaries=True,
29+
name="scim2",
30+
debug=False,
31+
bootloader_ignore_signals=False,
32+
strip=False,
33+
upx=False,
34+
console=True,
35+
disable_windowed_traceback=False,
36+
argv_emulation=False,
37+
target_arch=None,
38+
codesign_identity=None,
39+
entitlements_file=None,
40+
)
41+
coll = COLLECT(
42+
exe,
43+
a.binaries,
44+
a.datas,
45+
strip=False,
46+
upx=False,
47+
upx_exclude=[],
48+
name="scim2",
49+
)
50+
else:
51+
exe = EXE(
52+
pyz,
53+
a.scripts,
54+
a.binaries,
55+
a.datas,
56+
[],
57+
name="scim2",
58+
debug=False,
59+
bootloader_ignore_signals=False,
60+
strip=False,
61+
upx=True,
62+
upx_exclude=[],
63+
runtime_tmpdir=None,
64+
console=True,
65+
disable_windowed_traceback=False,
66+
argv_emulation=False,
67+
target_arch=None,
68+
codesign_identity=None,
69+
entitlements_file=None,
70+
)

0 commit comments

Comments
 (0)