1919 steps :
2020 - uses : actions/checkout@v3
2121
22- - name : Extract version from tag
23- id : release_info
24- shell : bash
25- run : |
26- VERSION=${GITHUB_REF#refs/tags/release/}
27- NOTES=$(awk "/^## $VERSION/ {flag=1; next} /^## / {if (flag) exit} flag" CHANGELOG.md)
28-
29- echo "version=$VERSION" >> $GITHUB_OUTPUT
30- echo "notes<<EOF" >> $GITHUB_OUTPUT
31- echo "$NOTES" >> $GITHUB_OUTPUT
32- echo "EOF" >> $GITHUB_OUTPUT
33-
3422 - name : Setup Flutter
3523 uses : subosito/flutter-action@v2
3624 with :
@@ -42,21 +30,14 @@ jobs:
4230 - name : Install dependencies
4331 run : flutter pub get
4432
45- - name : Build Windows App
33+ - name : Build Windows app
4634 run : flutter build windows
4735
48- - name : Release
49- uses : softprops/action-gh-release@v2
36+ - name : Upload artifact
37+ uses : actions/upload-artifact@v4
5038 with :
51- name : " v${{ steps.release_info.outputs.version }}"
52- body : ${{ steps.release_info.outputs.notes }}
53- files : build/windows/runner/Release/
54-
55- # - name: Upload release asset
56- # uses: actions/upload-artifact@v4
57- # with:
58- # name: windows-installer
59- # path: build/windows/runner/Release/
39+ name : windows-build
40+ path : build/windows/runner/Release/
6041
6142 build-linux :
6243 name : Build on Linux
@@ -78,21 +59,14 @@ jobs:
7859 - name : Install Linux build dependencies
7960 run : sudo apt-get update && sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev
8061
81- - name : Build Linux App
62+ - name : Build Linux app
8263 run : flutter build linux
8364
84- - name : Release
85- uses : softprops/action-gh-release@v2
65+ - name : Upload artifact
66+ uses : actions/upload-artifact@v4
8667 with :
87- name : " v${{ steps.release_info.outputs.version }}"
88- body : ${{ steps.release_info.outputs.notes }}
89- files : /build/linux/x64/release/bundle
90-
91- # - name: Upload artifact
92- # uses: actions/upload-artifact@v4
93- # with:
94- # name: linux-installer
95- # path: /build/linux/x64/release/bundle
68+ name : linux-build
69+ path : /build/linux/x64/release/bundle
9670
9771 build-macos :
9872 name : Build on macOS
@@ -111,19 +85,64 @@ jobs:
11185 - name : Install dependencies
11286 run : flutter pub get
11387
114- - name : Build macOS App
88+ - name : Build macOS app
11589 run : flutter build macos
11690
91+ - name : Upload artifact
92+ uses : actions/upload-artifact@v4
93+ with :
94+ name : macos-build
95+ path : build/macos/Build/Products/Release/fdupes_gui.app
96+
97+ release :
98+ runs-on : ubuntu-latest
99+ needs : [build-windows, build-linux, build-macos]
100+ steps :
101+ - uses : actions/checkout@v3
102+
103+ - name : Extract version from tag
104+ id : release_info
105+ shell : bash
106+ run : |
107+ VERSION=${GITHUB_REF#refs/tags/release/}
108+ NOTES=$(awk "/^## $VERSION/ {flag=1; next} /^## / {if (flag) exit} flag" CHANGELOG.md)
109+
110+ echo "version=$VERSION" >> $GITHUB_OUTPUT
111+ echo "notes<<EOF" >> $GITHUB_OUTPUT
112+ echo "$NOTES" >> $GITHUB_OUTPUT
113+ echo "EOF" >> $GITHUB_OUTPUT
114+
115+ - name : Download Windows artifact
116+ uses : actions/download-artifact@v3
117+ with :
118+ name : windows-build
119+ path : out/windows
120+
121+ - name : Download Linux artifact
122+ uses : actions/download-artifact@v3
123+ with :
124+ name : linux-build
125+ path : out/linux
126+
127+ - name : Download macOS artifact
128+ uses : actions/download-artifact@v3
129+ with :
130+ name : macos-build
131+ path : out/macos
132+
133+ - name : Create zip files with version
134+ run : |
135+ cd out
136+ zip -r fdupes_gui-${{ steps.vars.outputs.version }}-windows.zip windows
137+ zip -r fdupes_gui-${{ steps.vars.outputs.version }}-linux.x86_64.zip linux
138+ zip -r fdupes_gui-${{ steps.vars.outputs.version }}-macos.universal.zip macos
139+
117140 - name : Release
118141 uses : softprops/action-gh-release@v2
119142 with :
120143 name : " v${{ steps.release_info.outputs.version }}"
121144 body : ${{ steps.release_info.outputs.notes }}
122- files : build/macos/Build/Products/Release/fdupes_gui.app
123-
124- # - name: Upload artifact
125- # uses: actions/upload-artifact@v4
126- # with:
127- # name: macos-installer
128- # path: build/macos/Build/Products/Release/fdupes_gui.app
129-
145+ files : |
146+ out/fdupes_gui-${{ steps.vars.outputs.version }}-windows.zip
147+ out/fdupes_gui-${{ steps.vars.outputs.version }}-linux.x86_64.zip
148+ out/fdupes_gui-${{ steps.vars.outputs.version }}-macos.universal.zip
0 commit comments