This repository has been archived by the owner on Mar 4, 2024. It is now read-only.
Backport #840 #1379
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 }} |