Skip to content

Commit

Permalink
GUACAMOLE-1841: Add windows build CI job.
Browse files Browse the repository at this point in the history
  • Loading branch information
jmuehlner committed Nov 1, 2024
1 parent 46d0939 commit d9b874b
Showing 1 changed file with 73 additions and 0 deletions.
73 changes: 73 additions & 0 deletions .github/workflows/windows-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Windows Build

# Automatically verify pull requests
on: [pull_request]

# Limit to only one build for a given PR source branch at a time,
# cancelling any in-progress builds
concurrency:
group: windows-build-${{ github.head_ref }}
cancel-in-progress: true

jobs:

# This runs on a github-hosted runner, guaranteed fresh for every job run.
# Git, msys2, and other tools come preinstalled. For more, see
# https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md
windows-build:
name: Build guacamole-server on windows server 2022
runs-on: windows-2022
steps:

# TODO: Install libtelnet from source - it's not available in msys2
- name: Update MSYS2 repos and install dependencies
shell: powershell
run: |
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S git base-devel mingw-w64-x86_64-gcc mingw-w64-x86_64-autotools
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-cunit mingw-w64-x86_64-make mingw-w64-x86_64-python
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-cairo
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-dlfcn
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-freerdp
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-libssh2
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-libvncserver
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-libwebsockets
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-libjpeg-turbo
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-libpng
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-libgxps
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-libtool
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-libwebp
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-openssl
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-pango
C:\\msys64\\usr\\bin\\pacman.exe --noconfirm -S mingw-w64-x86_64-pulseaudio
C:\\msys64\\usr\\bin\\pacman.exe -Q
- name: Configure git to not mangle line endings
run: git config --global core.autocrlf input

- name: Checkout guacamole-server source
uses: actions/checkout@v4

- name: Build guacamole-server
shell: C:\\msys64\\usr\\bin\\bash.exe --login -eo pipefail -o igncr '{0}'
run: |
SERVER_BASE=`cygpath -u '${{ github.workspace }}'`
cd "$SERVER_BASE"
autoreconf -fi
export MINGW_ARCH="mingw64"
export PKG_CONFIG_PATH="/mingw64/lib/pkgconfig:/usr/lib/pkgconfig"
export PATH="$PATH:/mingw64/bin:/usr/bin"
export LDFLAGS="-L/mingw64/bin/ -L/usr/bin/ -L/mingw64/lib -lws2_32"
export CFLAGS="-isystem/mingw64/include/ \
-I/mingw64/include/pango-1.0 \
-I/mingw64/include/glib-2.0/ \
-I/mingw64/lib/glib-2.0/include/ \
-I/mingw64/include/harfbuzz/ \
-I/mingw64/include/cairo/ \
-I/mingw64/include/winpr2 \
-Wno-error=expansion-to-defined -Wno-error=attributes -Wno-incompatible-pointer-types"
./configure --with-windows --disable-guacenc --disable-guacd --disable-guaclog
make

0 comments on commit d9b874b

Please sign in to comment.