Skip to content

Commit e14c0b4

Browse files
committed
Move Windows workflow to the main release job.
1 parent c6b56ec commit e14c0b4

File tree

2 files changed

+141
-149
lines changed

2 files changed

+141
-149
lines changed

.github/workflows/release.yml

Lines changed: 141 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,17 @@ on:
33
tags:
44
- 'v*'
55

6-
name: Create Linux x86_64 release
6+
name: Create release
77

88
jobs:
9-
build:
10-
name: Create Release
9+
build-linux:
10+
name: Create Linux x86_64 release
1111
runs-on: ubuntu-latest
12+
1213
outputs:
1314
upload_url: ${{ steps.upload.outputs.upload_url }}
1415
tag: ${{ steps.vars.outputs.tag }}
16+
1517
steps:
1618
- uses: actions/checkout@v2
1719

@@ -80,3 +82,139 @@ jobs:
8082
- name: Set release outputs
8183
id: upload
8284
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

.github/workflows/windows.yml

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

0 commit comments

Comments
 (0)