3
3
tags :
4
4
- ' v*'
5
5
6
- name : Create Linux x86_64 release
6
+ name : Create release
7
7
8
8
jobs :
9
- build :
10
- name : Create Release
9
+ build-linux :
10
+ name : Create Linux x86_64 release
11
11
runs-on : ubuntu-latest
12
+
12
13
outputs :
13
14
upload_url : ${{ steps.upload.outputs.upload_url }}
14
15
tag : ${{ steps.vars.outputs.tag }}
16
+
15
17
steps :
16
18
- uses : actions/checkout@v2
17
19
@@ -80,3 +82,139 @@ jobs:
80
82
- name : Set release outputs
81
83
id : upload
82
84
run : echo "::set-output name=upload_url::${{ steps.create_release.outputs.upload_url }}"
85
+
86
+ gvsbuild :
87
+ name : Build GTK libs for Windows
88
+ runs-on : windows-latest
89
+ needs : build-linux
90
+ env :
91
+ gvsbuildref : 69cdac34c36d74eeae37006bb0fcedc64ee518dd
92
+ gvsbuildupdate : 1
93
+
94
+ outputs :
95
+ cachekey : ${{ steps.output.outputs.cachekey }}
96
+
97
+ steps :
98
+ - name : (GTK binaries) create dir
99
+ run : mkdir C:\gtk-build\gtk\x64\release
100
+
101
+ - name : (GTK binaries) get from cache
102
+ uses : actions/cache@v2
103
+ id : cache
104
+ with :
105
+ path : C:\gtk-build\gtk\x64\release\**
106
+ key : gvsbuild-${{ env.gvsbuildupdate }}-${{ env.gvsbuildref }}
107
+
108
+ - name : (GTK binaries) checkout gvsbuild
109
+ if : steps.cache.outputs.cache-hit != 'true'
110
+ uses : actions/checkout@v2
111
+ with :
112
+ repository : wingtk/gvsbuild
113
+ ref : ${{ env.gvsbuildref }}
114
+ path : gvsbuild
115
+
116
+ - name : (GTK binaries) move git binary
117
+ if : steps.cache.outputs.cache-hit != 'true'
118
+ run : move "C:\Program Files\Git\usr\bin" "C:\Program Files\Git\usr\notbin"
119
+ shell : cmd
120
+
121
+ - name : (GTK binaries) run gvsbuild
122
+ if : steps.cache.outputs.cache-hit != 'true'
123
+ working-directory : gvsbuild
124
+ run : python .\build.py build -p=x64 --vs-ver=16 --msys-dir=C:\msys64 gtk3
125
+
126
+ - name : (GTK binaries) restore git binary
127
+ if : steps.cache.outputs.cache-hit != 'true'
128
+ run : move "C:\Program Files\Git\usr\notbin" "C:\Program Files\Git\usr\bin"
129
+ shell : cmd
130
+
131
+ - name : (GTK binaries) output cache key
132
+ id : output
133
+ run : echo "::set-output name=cachekey::gvsbuild-${{ env.gvsbuildupdate }}-${{ env.gvsbuildref }}"
134
+
135
+ build-windows :
136
+ name : Create Windows x64 release
137
+ runs-on : windows-latest
138
+ needs : [build-linux, gvsbuild]
139
+ steps :
140
+ - name : Create GTK binaries dir
141
+ run : mkdir C:\gtk-build\gtk\x64\release
142
+
143
+ - name : Get GTK binaries from cache
144
+ uses : actions/cache@v2
145
+ id : cache
146
+ with :
147
+ path : C:\gtk-build\gtk\x64\release\**
148
+ key : ${{ needs.gvsbuild.outputs.cachekey }}
149
+
150
+ - name : Set up env
151
+ run : |
152
+ echo "PKG_CONFIG=C:\gtk-build\gtk\x64\release\bin\pkgconf.exe" >> $GITHUB_ENV
153
+ echo "C:\gtk-build\gtk\x64\release\bin" >> $GITHUB_PATH
154
+ shell : bash
155
+
156
+ - name : Create target path
157
+ run : mkdir C:\build
158
+
159
+ - uses : actions/checkout@v2
160
+
161
+ - uses : actions-rs/toolchain@v1
162
+ with :
163
+ toolchain : stable
164
+ default : true
165
+
166
+ - name : Build release
167
+ uses : actions-rs/cargo@v1
168
+ with :
169
+ command : build
170
+ args : --release --target-dir C:\build
171
+
172
+ - uses : msys2/setup-msys2@v2
173
+ with :
174
+ update : true
175
+ install : >-
176
+ mingw-w64-x86_64-adwaita-icon-theme
177
+ mingw-w64-x86_64-hicolor-icon-theme
178
+
179
+ - name : Copy dependencies
180
+ run : |
181
+ mkdir $env:PACKAGE_DIR
182
+ mkdir $env:PACKAGE_DIR\bin\
183
+ mkdir $env:PACKAGE_DIR\lib\
184
+ mkdir $env:PACKAGE_DIR\share\
185
+
186
+ cp C:\build\release\dragit.exe $env:PACKAGE_DIR\bin\
187
+
188
+ # Those dlls and binaries are provided by gvsbuild
189
+ foreach($line in Get-Content .\scripts\windows_deps.txt) {
190
+ cp C:\gtk-build\gtk\x64\release\bin\$line $env:PACKAGE_DIR\bin\
191
+ }
192
+
193
+ cp -r C:\gtk-build\gtk\x64\release\share\glib-2.0 $env:PACKAGE_DIR\share\
194
+
195
+ # Icons are installed from msys2.
196
+ # TODO: Figure out the env var for the temp path
197
+ cp -r D:\a\_temp\msys\msys64\mingw64\share\icons $env:PACKAGE_DIR\share\
198
+
199
+ # https://github.com/gtk-rs/gtk/issues/422
200
+ cp -r C:\gtk-build\gtk\x64\release\lib\gdk-pixbuf-2.0 $env:PACKAGE_DIR\lib\
201
+
202
+ cp static\README.md $env:PACKAGE_DIR\
203
+ env :
204
+ PACKAGE_DIR : C:\build\dragit
205
+
206
+ - name : Build zip package
207
+ run : |
208
+ cd C:\build\
209
+ tar.exe -a -c -f C:\build\dragit_package.zip dragit
210
+
211
+ - name : Upload release asset
212
+ id : upload-release-asset
213
+ uses : actions/upload-release-asset@v1
214
+ env :
215
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
216
+ with :
217
+ upload_url : ${{ needs.build-linux.outputs.upload_url }}
218
+ asset_path : C:\build\dragit_package.zip
219
+ asset_name : dragit_${{ needs.build-linux.outputs.tag }}_windows_x64.zip
220
+ asset_content_type : application/zip
0 commit comments