Skip to content

Commit f71b51c

Browse files
Merge pull request #12 from Ashraf-Khabar/create-the-installer-for-the-app
Publish the installer version, and adding github action to publish th…
2 parents 353c83b + 5901f6a commit f71b51c

8 files changed

Lines changed: 94 additions & 151 deletions

File tree

.github/workflows/release.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Build and Release BulkFolder
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
jobs:
9+
build:
10+
runs-on: windows-latest
11+
12+
steps:
13+
- name: Checkout code
14+
uses: actions/checkout@v4
15+
16+
- name: Set up Python
17+
uses: actions/setup-python@v5
18+
with:
19+
python-version: '3.11'
20+
21+
- name: Install dependencies
22+
run: |
23+
python -m pip install --upgrade pip
24+
pip install pyinstaller customtkinter matplotlib
25+
26+
- name: Get version from XML
27+
id: get_version
28+
shell: powershell
29+
run: |
30+
[xml]$project = Get-Content "project_info.xml"
31+
$version = $project.project.version
32+
echo "VERSION=$version" >> $env:GITHUB_OUTPUT
33+
34+
- name: Build with PyInstaller
35+
run: |
36+
# Créez d'abord le fichier run.py comme discuté précédemment
37+
python -m PyInstaller --noconfirm --windowed --name "BulkFolder" --icon="src/assets/logo.ico" --add-data="src/assets;assets" --paths="src" --collect-all customtkinter run.py
38+
39+
- name: Compile Inno Setup
40+
uses: rysoftware/inno-setup-action@v1
41+
with:
42+
filepath: installer_script.iss
43+
44+
- name: Create Release
45+
id: create_release
46+
uses: softprops/action-gh-release@v1
47+
with:
48+
tag_name: v${{ steps.get_version.outputs.VERSION }}
49+
name: Release v${{ steps.get_version.outputs.VERSION }}
50+
draft: false
51+
prerelease: false
52+
files: |
53+
Output/*.exe # Envoie l'installateur généré par Inno Setup
54+
env:
55+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Python
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
.env
6+
.venv
7+
env/
8+
venv/
9+
10+
# PyInstaller & Build
11+
build/
12+
dist/
13+
*.spec
14+
run.py
15+
16+
# Inno Setup
17+
Output/
18+
*.iss
19+
20+
# IDE (VS Code, PyCharm)
21+
.vscode/
22+
.idea/
23+
24+
# OS
25+
.DS_Store
26+
Thumbs.db

project_info.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<project>
33
<name>BulkFolder</name>
4-
<version>1.7.3</version>
4+
<version>1.7.4</version>
55
<description>The safest and fastest bulk organizer and renamer.</description>
66
<author>Achraf KHABAR / Open Source Community</author>
77
<repository>https://github.com/Ashraf-Khabar/bulkfolder</repository>

pyproject.toml

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/assets/icons/mysetup.exe

22 MB
Binary file not shown.

src/assets/logo.ico

-147 KB
Binary file not shown.

src/bulkfolder/build.bat

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -3,41 +3,28 @@ title Compilation de BulkFolder
33
echo ==========================================
44
echo PREPARATION DE LA COMPILATION
55
echo ==========================================
6-
echo.
76

8-
echo 1. Nettoyage des anciens fichiers de build...
7+
:: Cette ligne est cruciale : elle force le script à se placer à la racine du projet
8+
cd /d "%~dp0\..\.."
9+
10+
echo 1. Nettoyage des anciens fichiers...
911
if exist "build" rmdir /s /q "build"
1012
if exist "dist" rmdir /s /q "dist"
11-
if exist "BulkFolder.spec" del "BulkFolder.spec"
12-
13-
echo.
14-
echo 2. Lancement de PyInstaller...
15-
echo Cela peut prendre une ou deux minutes, patience !
16-
echo.
17-
18-
REM Explication des parametres :
19-
REM --noconfirm : Ecrase le dossier dist/ sans demander la permission
20-
REM --windowed : Cache la console noire de Python au lancement (mode interface graphique pure)
21-
REM --name : Le nom de votre application
22-
REM --icon : L'icone de votre application (.ico)
23-
REM --add-data : Inclut votre dossier assets dans le .exe (le ";" est obligatoire sur Windows)
24-
REM --paths : Indique a PyInstaller ou trouver vos modules (le dossier src)
25-
REM --collect-all customtkinter : Force l'inclusion des couleurs et themes de CustomTkinter
2613

27-
pyinstaller --noconfirm ^
14+
echo 2. Lancement de PyInstaller avec le nouveau lanceur...
15+
:: Nous utilisons run.py (le fichier créé à la racine) au lieu de main.py
16+
python -m PyInstaller --noconfirm ^
2817
--windowed ^
2918
--name "BulkFolder" ^
30-
--icon="assets/logo.ico" ^
31-
--add-data "assets;assets" ^
19+
--icon="src/assets/logo.ico" ^
20+
--add-data "src/assets;assets" ^
3221
--paths="src" ^
3322
--collect-all customtkinter ^
34-
"src/bulkfolder/ui/main.py"
23+
"run.py"
3524

36-
echo.
3725
echo ==========================================
3826
echo COMPILATION TERMINEE AVEC SUCCES !
3927
echo ==========================================
4028
echo.
41-
echo Vous trouverez votre application BulkFolder dans le dossier "dist\BulkFolder".
42-
echo.
43-
pause
29+
echo Vous trouverez votre application dans "dist\BulkFolder".
30+
pause

src/themes/dracula.json

Lines changed: 0 additions & 106 deletions
This file was deleted.

0 commit comments

Comments
 (0)