Skip to content

Commit d113ebf

Browse files
authored
Merge pull request #88 from Team-Arduino-Logique/automatic-build-release
Automatic build release
2 parents afd9705 + 4104c75 commit d113ebf

File tree

4 files changed

+182
-1
lines changed

4 files changed

+182
-1
lines changed
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
name: Build and Release
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches:
9+
- master
10+
11+
jobs:
12+
build-macos:
13+
runs-on: macos-latest
14+
steps:
15+
- name: Checkout code
16+
uses: actions/checkout@v4
17+
18+
- name: Set up Python
19+
uses: actions/setup-python@v5
20+
with:
21+
python-version: '3.x'
22+
23+
- name: Install PyInstaller
24+
run: pip install pyinstaller pyserial
25+
26+
- name: Build with PyInstaller
27+
run: pyinstaller arduino_logique.spec
28+
29+
- name: Compress the build
30+
run: tar -czvf arduino_logique_macos.tar.gz dist/arduino_logique
31+
32+
- name: Upload artifact
33+
uses: actions/upload-artifact@v3
34+
with:
35+
name: macos-build
36+
path: arduino_logique_macos.tar.gz
37+
38+
build-ubuntu:
39+
runs-on: ubuntu-latest
40+
steps:
41+
- name: Checkout code
42+
uses: actions/checkout@v4
43+
44+
- name: Set up Python
45+
uses: actions/setup-python@v5
46+
with:
47+
python-version: '3.x'
48+
49+
- name: Install PyInstaller
50+
run: pip install pyinstaller pyserial
51+
52+
- name: Build with PyInstaller
53+
run: pyinstaller arduino_logique.spec
54+
55+
- name: Compress the build
56+
run: tar -czvf arduino_logique_ubuntu.tar.gz dist/arduino_logique
57+
58+
- name: Upload artifact
59+
uses: actions/upload-artifact@v3
60+
with:
61+
name: ubuntu-build
62+
path: arduino_logique_ubuntu.tar.gz
63+
64+
build-windows:
65+
runs-on: windows-latest
66+
steps:
67+
- name: Checkout code
68+
uses: actions/checkout@v4
69+
70+
- name: Set up Python
71+
uses: actions/setup-python@v5
72+
with:
73+
python-version: '3.x'
74+
75+
- name: Install PyInstaller
76+
run: pip install pyinstaller pyserial
77+
78+
- name: Build with PyInstaller
79+
run: pyinstaller arduino_logique.spec
80+
81+
- name: Compress the build
82+
run: Compress-Archive -Path dist\arduino_logique -DestinationPath arduino_logique_windows.zip
83+
84+
- name: Upload artifact
85+
uses: actions/upload-artifact@v3
86+
with:
87+
name: windows-build
88+
path: arduino_logique_windows.zip
89+
90+
release:
91+
needs: [build-macos, build-ubuntu, build-windows]
92+
runs-on: ubuntu-latest
93+
permissions:
94+
contents: write
95+
steps:
96+
- name: Checkout code
97+
uses: actions/checkout@v4
98+
with:
99+
fetch-depth: 0
100+
101+
- name: Download macOS build
102+
uses: actions/download-artifact@v3
103+
with:
104+
name: macos-build
105+
path: ./dist/
106+
107+
- name: Download Ubuntu build
108+
uses: actions/download-artifact@v3
109+
with:
110+
name: ubuntu-build
111+
path: ./dist/
112+
113+
- name: Download Windows build
114+
uses: actions/download-artifact@v3
115+
with:
116+
name: windows-build
117+
path: ./dist/
118+
119+
- name: Bump version and push tag
120+
id: bump
121+
uses: anothrNick/github-tag-action@1.36.0
122+
env:
123+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
124+
WITH_V: true
125+
RELEASE_BRANCHES: master
126+
INITIAL_VERSION: v0.0.0
127+
128+
- name: Create release
129+
uses: ncipollo/release-action@v1
130+
with:
131+
artifacts: "./dist/arduino_logique_macos.tar.gz,./dist/arduino_logique_ubuntu.tar.gz,./dist/arduino_logique_windows.zip"
132+
token: ${{ secrets.GITHUB_TOKEN }}
133+
tag: ${{ steps.bump.outputs.new_tag }}

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
__pycache__/
2-
.mypy_cache/
2+
.mypy_cache/
3+
build/
4+
dist/

arduino_logique.spec

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# -*- mode: python ; coding: utf-8 -*-
2+
3+
4+
a = Analysis(
5+
['arduino_logique.py'],
6+
pathex=[],
7+
binaries=[],
8+
datas=[('Assets', 'Assets'), ('Components', 'Components')],
9+
hiddenimports=[],
10+
hookspath=[],
11+
hooksconfig={},
12+
runtime_hooks=[],
13+
excludes=[],
14+
noarchive=False,
15+
optimize=0,
16+
)
17+
pyz = PYZ(a.pure)
18+
19+
exe = EXE(
20+
pyz,
21+
a.scripts,
22+
[],
23+
exclude_binaries=True,
24+
name='arduino_logique',
25+
debug=False,
26+
bootloader_ignore_signals=False,
27+
strip=False,
28+
upx=True,
29+
console=False,
30+
disable_windowed_traceback=False,
31+
argv_emulation=False,
32+
target_arch=None,
33+
codesign_identity=None,
34+
entitlements_file=None,
35+
contents_directory='.',
36+
)
37+
coll = COLLECT(
38+
exe,
39+
a.binaries,
40+
a.datas,
41+
strip=False,
42+
upx=True,
43+
upx_exclude=[],
44+
name='arduino_logique',
45+
)

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
pyserial==3.5

0 commit comments

Comments
 (0)