1+ # קובץ: .github/workflows/flutter-build.yml
2+ name : Build Flutter APK + EXE & Create Release
3+
4+ on :
5+ push :
6+ branches :
7+ - main
8+ - dev
9+ - release/*
10+ tags :
11+ - ' *'
12+ workflow_dispatch :
13+
14+ jobs :
15+ android :
16+ name : Build Android APK
17+ runs-on : ubuntu-latest
18+ steps :
19+ - name : Checkout Repository
20+ uses : actions/checkout@v4
21+
22+ - name : Set up Java 17
23+ uses : actions/setup-java@v4
24+ with :
25+ distribution : ' temurin'
26+ java-version : ' 17'
27+
28+ - name : Set up Flutter
29+ uses : subosito/flutter-action@v2
30+ with :
31+ flutter-version : ' 3.32.1'
32+ channel : ' stable'
33+
34+ - name : Install Dependencies
35+ working-directory : src
36+ run : flutter pub get
37+
38+ - name : Decode Keystore and Create Properties File
39+ working-directory : src/android/app
40+ env :
41+ KEYSTORE_BASE64 : ${{ secrets.KEYSTORE_BASE64 }}
42+ KEY_ALIAS : ${{ secrets.KEY_ALIAS }}
43+ KEY_PASSWORD : ${{ secrets.KEY_PASSWORD }}
44+ STORE_PASSWORD : ${{ secrets.STORE_PASSWORD }}
45+ run : |
46+ echo "$KEYSTORE_BASE64" | base64 --decode > upload-keystore.jks
47+ echo "storePassword=$STORE_PASSWORD" > key.properties
48+ echo "keyPassword=$KEY_PASSWORD" >> key.properties
49+ echo "keyAlias=$KEY_ALIAS" >> key.properties
50+ echo "storeFile=upload-keystore.jks" >> key.properties
51+
52+ - name : Build Signed Android APK
53+ working-directory : src
54+ run : flutter build apk --release
55+
56+ - name : Upload APK Artifact
57+ uses : actions/upload-artifact@v4
58+ with :
59+ name : android-apk-artifact
60+ path : src/build/app/outputs/flutter-apk/app-release.apk
61+
62+ windows :
63+ name : Build Windows EXE
64+ runs-on : windows-latest
65+ steps :
66+ - name : Checkout Repository
67+ uses : actions/checkout@v4
68+
69+ - name : Set up Flutter
70+ uses : subosito/flutter-action@v2
71+ with :
72+ flutter-version : ' 3.32.1'
73+ channel : ' stable'
74+
75+ - name : Install Dependencies
76+ working-directory : src
77+ run : flutter pub get
78+
79+ - name : Build Windows EXE
80+ working-directory : src
81+ run : flutter build windows --release
82+
83+ - name : Zip Windows Release
84+ working-directory : src/build/windows/x64/runner/Release
85+ run : Compress-Archive -Path * -DestinationPath ../../../../../../windows-release.zip
86+
87+ - name : Upload Windows ZIP Artifact
88+ uses : actions/upload-artifact@v4
89+ with :
90+ name : windows-zip-artifact
91+ # ✅ תיקון: הנתיב לקובץ ה-ZIP הוא בתיקייה הראשית של הפרויקט
92+ path : windows-release.zip
93+
94+ publish-release :
95+ name : Publish GitHub Release
96+ if : startsWith(github.ref, 'refs/tags/')
97+ needs : [android, windows]
98+ runs-on : ubuntu-latest
99+ permissions :
100+ contents : write
101+
102+ steps :
103+ - name : Download Android APK artifact
104+ uses : actions/download-artifact@v4
105+ with :
106+ name : android-apk-artifact
107+ path : artifacts/android
108+
109+ - name : Download Windows ZIP artifact
110+ uses : actions/download-artifact@v4
111+ with :
112+ name : windows-zip-artifact
113+ path : artifacts/windows
114+
115+ - name : Prepare Release Assets and Rename
116+ id : prepare_assets
117+ env :
118+ TAG_VERSION : ${{ github.ref_name }}
119+ run : |
120+ APK_ORIGINAL_PATH="artifacts/android/app-release.apk"
121+ APK_NEW_NAME="shamor-vezachor-${TAG_VERSION}.apk"
122+ mv "${APK_ORIGINAL_PATH}" "artifacts/android/${APK_NEW_NAME}"
123+
124+ ZIP_ORIGINAL_PATH="artifacts/windows/windows-release.zip"
125+ ZIP_NEW_NAME="shamor-vezachor-${TAG_VERSION}-windows.zip"
126+ mv "${ZIP_ORIGINAL_PATH}" "artifacts/windows/${ZIP_NEW_NAME}"
127+
128+ echo "Final files for release:"
129+ ls -R artifacts/
130+
131+ - name : Create GitHub Release
132+ uses : softprops/action-gh-release@v2
133+ with :
134+ files : |
135+ artifacts/android/shamor-vezachor-${{ github.ref_name }}.apk
136+ artifacts/windows/shamor-vezachor-${{ github.ref_name }}-windows.zip
137+ tag_name : ${{ github.ref_name }}
138+ name : Release ${{ github.ref_name }}
139+ body : |
140+ גרסה ${{ github.ref_name }} של שמור וזכור.
141+ קבצים מצורפים:
142+ - `shamor-vezachor-${{ github.ref_name }}.apk` (אנדרואיד)
143+ - `shamor-vezachor-${{ github.ref_name }}-windows.zip` (חלונות)
144+ draft : true
145+ prerelease : false
0 commit comments