Skip to content

ci: add Cygwin build workflow #15

ci: add Cygwin build workflow

ci: add Cygwin build workflow #15

Workflow file for this run

name: Cygwin build
on:
pull_request:
push:
branches:
- master
jobs:
cygwin-build:
runs-on: windows-latest
env:
CYGWIN: winsymlinks:nativestrict
defaults:
run:
shell: C:\tools\cygwin\bin\bash.exe --login -eo pipefail -o igncr '{0}'
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Cygwin with build dependencies
uses: egor-tensin/setup-cygwin@v4
with:
packages: >-
autoconf
automake
libtool
make
pkg-config
autoconf-archive
gcc-core
gettext-devel
git
libncursesw-devel
libglib2.0-devel
libcurl-devel
libreadline-devel
libsqlite3-devel
- name: Build and install libstrophe from source
run: |
cd "$GITHUB_WORKSPACE"
mkdir -p deps && cd deps
git clone --depth 1 https://github.com/strophe/libstrophe.git
cd libstrophe
./autogen.sh
./configure --prefix=$PWD/install
make -j2 install
shell: C:\tools\cygwin\bin\bash.exe --login -eo pipefail -o igncr '{0}'
- name: Check repo state
run: |
cd "$GITHUB_WORKSPACE"
pwd
ls -la
test -f configure.ac && echo "configure.ac present" || (echo "configure.ac missing"; exit 1)
- name: Autotools bootstrap
run: |
cd "$GITHUB_WORKSPACE"
git config --global core.autocrlf false || true
[ -f ./bootstrap.sh ] && sed -i 's/\r$//' ./bootstrap.sh || true
if [ -x ./bootstrap.sh ]; then
./bootstrap.sh
else
autoreconf -fi
fi
- name: Configure
env:
PKG_CONFIG_PATH: ${{ github.workspace }}/deps/libstrophe/install/lib/pkgconfig:$PKG_CONFIG_PATH
run: |
cd "$GITHUB_WORKSPACE"
./configure
- name: Build
run: |
cd "$GITHUB_WORKSPACE"
make -j2
# Uncomment when tests are reliable on Cygwin
# - name: Test
# run: |
# cd "$GITHUB_WORKSPACE"
# make check -j2