This repository has been archived by the owner on Mar 4, 2024. It is now read-only.
-
-
Notifications
You must be signed in to change notification settings - Fork 90
131 lines (106 loc) · 4.14 KB
/
windows.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
on:
push:
branches: [master]
pull_request:
workflow_dispatch:
name: Windows
jobs:
gvsbuild:
name: build GTK binaries with gvsbuild
runs-on: windows-2022
env:
# git revision of gvsbuild we use for to build GTK and the other dependencies
gvsbuildref: 1b3c28a3aa2312e7796f5f91b0a897a7a38b9292
# bump this number if you want to force a rebuild of gvsbuild with the same revision
gvsbuildupdate: 1
outputs:
cachekey: ${{ steps.output.outputs.cachekey }}
steps:
# this is needed for the cache restore to work
- name: (GTK binaries) create dir
run: mkdir C:\gtk-build\gtk\x64\release
- name: (GTK binaries) get from cache
uses: actions/cache@v2
id: cache
with:
path: C:\gtk-build\gtk\x64\release\**
key: gvsbuild-${{ env.gvsbuildupdate }}-${{ env.gvsbuildref }}
- name: (GTK binaries) checkout gvsbuild
if: steps.cache.outputs.cache-hit != 'true'
uses: actions/checkout@v2
with:
repository: wingtk/gvsbuild
ref: ${{ env.gvsbuildref }}
path: gvsbuild
# Temporarily move the preinstalled git, it causes errors related to cygwin.
- name: (GTK binaries) move git binary
if: steps.cache.outputs.cache-hit != 'true'
run: |
move "C:\Program Files\Git\usr\bin" "C:\Program Files\Git\usr\notbin"
move "C:\Program Files\Git\bin" "C:\Program Files\Git\notbin"
shell: cmd
- name: (GTK binaries) install gvsbuild
if: steps.cache.outputs.cache-hit != 'true'
working-directory: gvsbuild
run: python -m pip install .
- name: (GTK binaries) run gvsbuild
if: steps.cache.outputs.cache-hit != 'true'
run: gvsbuild build --platform=x64 --vs-ver=17 --msys-dir=C:\msys64 gtk3 graphene
- name: (GTK binaries) restore git binary
if: steps.cache.outputs.cache-hit != 'true'
run: |
move "C:\Program Files\Git\usr\notbin" "C:\Program Files\Git\usr\bin"
move "C:\Program Files\Git\notbin" "C:\Program Files\Git\bin"
shell: cmd
- name: (GTK binaries) output cache key
id: output
run: echo "::set-output name=cachekey::gvsbuild-${{ env.gvsbuildupdate }}-${{ env.gvsbuildref }}"
build:
name: build gtk-rs on Windows
runs-on: windows-2022
needs: gvsbuild
strategy:
matrix:
# FIXME: for now we turn off almost all sys tests, since they fail the ABI check
conf:
- { name: "atk", test: true, test-sys: false, args: "--features v2_34" }
- { name: "gdk", test: true, test-sys: false, args: "--features v3_24" }
- { name: "gtk", test: true, test-sys: false, args: "--features v3_24_9" }
- { name: "examples", test: false, test-sys: false, args: "--bins --examples --all-features" }
steps:
# this is needed for the cache restore to work
- name: Create GTK binaries dir
run: mkdir C:\gtk-build\gtk\x64\release
- name: Get GTK binaries from cache
uses: actions/cache@v2
id: cache
with:
path: C:\gtk-build\gtk\x64\release\**
key: ${{needs.gvsbuild.outputs.cachekey}}
- name: Set up env
run: |
echo "PKG_CONFIG=C:\gtk-build\gtk\x64\release\bin\pkgconf.exe" >> $GITHUB_ENV
echo "C:\gtk-build\gtk\x64\release\bin" >> $GITHUB_PATH
shell: bash
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
default: true
- name: test
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path ${{ matrix.conf.name }}/Cargo.toml ${{ matrix.conf.args }}
if: matrix.conf.test
- name: test sys
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path ${{ matrix.conf.name }}/sys/Cargo.toml ${{ matrix.conf.args }}
if: matrix.conf.test-sys
- name: build
uses: actions-rs/cargo@v1
with:
command: build
args: --manifest-path ${{ matrix.conf.name }}/Cargo.toml ${{ matrix.conf.args }}