Drop HIDDEN symbol #28
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
# Copyright (C) Viktor Szakats | |
# | |
# SPDX-License-Identifier: curl | |
name: Cygwin | |
'on': | |
push: | |
branches: | |
- master | |
- '*/ci' | |
paths-ignore: | |
- '**/*.md' | |
- '.circleci/**' | |
- 'appveyor.*' | |
- 'packages/**' | |
- 'plan9/**' | |
- 'projects/**' | |
- 'winbuild/**' | |
pull_request: | |
branches: | |
- master | |
paths-ignore: | |
- '**/*.md' | |
- '.circleci/**' | |
- 'appveyor.*' | |
- 'packages/**' | |
- 'plan9/**' | |
- 'projects/**' | |
- 'winbuild/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
permissions: {} | |
jobs: | |
cygwin: | |
name: "cygwin, ${{ matrix.build == 'cmake' && 'CM' || 'AM' }} ${{ matrix.platform }} ${{ matrix.name }}" | |
runs-on: windows-latest | |
timeout-minutes: 45 | |
defaults: | |
run: | |
shell: C:\cygwin\bin\bash.exe '{0}' | |
env: | |
SHELLOPTS: 'igncr' | |
strategy: | |
matrix: | |
include: | |
- { build: 'automake', platform: 'x86_64', tflags: '' , config: '--enable-debug --disable-threaded-resolver', name: 'openssl' } | |
- { build: 'cmake' , platform: 'x86_64', tflags: 'skiprun', config: '-DCURL_USE_OPENSSL=ON', name: 'openssl R' } | |
fail-fast: false | |
steps: | |
- run: git config --global core.autocrlf input | |
shell: pwsh | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4 | |
- uses: cygwin/cygwin-install-action@006ad0b0946ca6d0a3ea2d4437677fa767392401 # v4 | |
with: | |
platform: ${{ matrix.platform }} | |
site: https://mirrors.kernel.org/sourceware/cygwin/ | |
# https://cygwin.com/cgi-bin2/package-grep.cgi | |
packages: >- | |
autoconf libtool gcc-core gcc-g++ binutils | |
${{ matrix.build }} make ninja | |
openssh | |
libssl-devel | |
libssh2-devel | |
libpsl-devel | |
zlib-devel | |
libbrotli-devel | |
libnghttp2-devel | |
- name: 'autotools autoreconf' | |
if: ${{ matrix.build == 'automake' }} | |
timeout-minutes: 2 | |
run: autoreconf -fi | |
- name: 'autotools configure' | |
if: ${{ matrix.build == 'automake' }} | |
timeout-minutes: 5 | |
run: | | |
PATH="/usr/bin:$(cygpath "${SYSTEMROOT}")/System32" | |
mkdir bld && cd bld && ../configure --enable-unity --enable-test-bundles --enable-warnings --enable-werror \ | |
--prefix="${HOME}"/install \ | |
--enable-websockets \ | |
--with-openssl \ | |
--with-libssh2 \ | |
--disable-dependency-tracking \ | |
${{ matrix.config }} | |
- name: 'autotools configure log' | |
if: ${{ matrix.build == 'automake' && !cancelled() }} | |
run: cat bld/config.log 2>/dev/null || true | |
- name: 'curl_config.h' | |
if: ${{ matrix.build == 'automake' }} | |
run: cat bld/lib/curl_config.h | grep -F '#define' | sort || true | |
- name: 'curl_config.h (full)' | |
if: ${{ matrix.build == 'automake' }} | |
run: cat bld/lib/curl_config.h || true | |
- name: 'autotools build' | |
if: ${{ matrix.build == 'automake' }} | |
timeout-minutes: 10 | |
run: make -C bld -j5 V=1 install | |
- name: 'curl version' | |
if: ${{ matrix.build == 'automake' }} | |
timeout-minutes: 1 | |
run: | | |
find . -name '*.exe' -o -name '*.dll' | |
bld/src/curl.exe --disable --version | |
- name: 'autotools build tests' | |
if: ${{ matrix.build == 'automake' && matrix.tflags != 'skipall' }} | |
timeout-minutes: 15 | |
run: make -C bld -j5 V=1 -C tests | |
- name: 'autotools run tests' | |
if: ${{ matrix.build == 'automake' && matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }} | |
timeout-minutes: 15 | |
run: | | |
export TFLAGS='-j8 ${{ matrix.tflags }} ~615' | |
if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then | |
TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")" | |
fi | |
make -C bld -j5 V=1 test-ci | |
- name: 'autotools build examples' | |
if: ${{ matrix.build == 'automake' }} | |
timeout-minutes: 5 | |
run: make -C bld -j5 V=1 examples | |
- name: 'cmake configure' | |
if: ${{ matrix.build == 'cmake' }} | |
timeout-minutes: 5 | |
run: | | |
PATH="/usr/bin:$(cygpath "${SYSTEMROOT}")/System32" | |
cmake -B bld -G Ninja ${options} \ | |
-DCMAKE_UNITY_BUILD=ON -DCURL_TEST_BUNDLES=ON \ | |
-DCURL_WERROR=ON \ | |
-DENABLE_WEBSOCKETS=ON \ | |
-DCURL_BROTLI=ON \ | |
${{ matrix.config }} | |
- name: 'cmake configure log' | |
if: ${{ matrix.build == 'cmake' && !cancelled() }} | |
run: cat bld/CMakeFiles/CMake*.yaml 2>/dev/null || true | |
- name: 'curl_config.h' | |
if: ${{ matrix.build == 'cmake' }} | |
run: cat bld/lib/curl_config.h | grep -F '#define' | sort || true | |
- name: 'curl_config.h (full)' | |
if: ${{ matrix.build == 'cmake' }} | |
run: cat bld/lib/curl_config.h || true | |
- name: 'cmake build' | |
if: ${{ matrix.build == 'cmake' }} | |
timeout-minutes: 10 | |
run: cmake --build bld --config '${{ matrix.type }}' --parallel 5 | |
- name: 'curl version' | |
if: ${{ matrix.build == 'cmake' }} | |
timeout-minutes: 1 | |
run: | | |
find . -name '*.exe' -o -name '*.dll' | grep -v '/examples/' | |
PATH="$PWD/bld/lib:$PATH" | |
bld/src/curl.exe --disable --version | |
- name: 'cmake build tests' | |
if: ${{ matrix.build == 'cmake' && matrix.tflags != 'skipall' }} | |
timeout-minutes: 15 | |
run: cmake --build bld --config '${{ matrix.type }}' --parallel 5 --target testdeps | |
- name: 'cmake run tests' | |
if: ${{ matrix.build == 'cmake' && matrix.tflags != 'skipall' && matrix.tflags != 'skiprun' }} | |
timeout-minutes: 15 | |
run: | | |
export TFLAGS='-j8 ${{ matrix.tflags }} ~615' | |
if [ -x "$(cygpath "${SYSTEMROOT}/System32/curl.exe")" ]; then | |
TFLAGS+=" -ac $(cygpath "${SYSTEMROOT}/System32/curl.exe")" | |
fi | |
PATH="$PWD/bld/lib:$PATH" | |
cmake --build bld --config '${{ matrix.type }}' --target test-ci | |
- name: 'cmake build examples' | |
if: ${{ matrix.build == 'cmake' }} | |
timeout-minutes: 5 | |
run: cmake --build bld --config '${{ matrix.type }}' --parallel 5 --target curl-examples |