mirror of
https://github.com/curl/curl.git
synced 2025-03-07 15:27:17 +08:00
GHA: move Cygwin jobs back into the Windows workflow
Cygwin jobs took 30 minutes and was the reason for moving them to their own workflow. After recent changes, they finish in 8 minutes, which is on par or lower than the longest Windows jobs. Thus, Cygwin can now be moved back to the Windows workflow without causing extra wait for all the workflow jobs to complete (and allowing a manual retry for the remaining flaky jobs). Notice that Cygwin still uses the cygwin/cygwin-install-action action to install Cygwin itself. This action uses no caching and the time it takes fluctuates widely depending on mirror speed, congestion and other things. If Cygwin tends to hold up jobs again for this or other reasons, this patch may be reverted. Follow-up to80a8e24956
#15083 Follow-up to2d8464c4cb
#14366 Closes #15086
This commit is contained in:
parent
7bc653a1d6
commit
aed3f02317
1
.github/labeler.yml
vendored
1
.github/labeler.yml
vendored
@ -526,7 +526,6 @@ Windows:
|
||||
- changed-files:
|
||||
- any-glob-to-all-files: "{\
|
||||
appveyor.*,\
|
||||
.github/workflows/cygwin.yml,\
|
||||
.github/workflows/windows.yml,\
|
||||
CMake/Platforms/WindowsCache.cmake,\
|
||||
lib/*win32*,\
|
||||
|
185
.github/workflows/cygwin.yml
vendored
185
.github/workflows/cygwin.yml
vendored
@ -1,185 +0,0 @@
|
||||
# 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: 'skiprun', config: '', name: 'openssl R' }
|
||||
- { build: 'cmake' , platform: 'x86_64', tflags: '' , config: '-DENABLE_DEBUG=ON -DCURL_USE_OPENSSL=ON -DENABLE_THREADED_RESOLVER=OFF', name: 'openssl' }
|
||||
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 \
|
||||
--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='-j20 ${{ 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: '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 \
|
||||
-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'
|
||||
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
|
148
.github/workflows/windows.yml
vendored
148
.github/workflows/windows.yml
vendored
@ -36,6 +36,154 @@ concurrency:
|
||||
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: 'skiprun', config: '', name: 'openssl R' }
|
||||
- { build: 'cmake' , platform: 'x86_64', tflags: '' , config: '-DENABLE_DEBUG=ON -DCURL_USE_OPENSSL=ON -DENABLE_THREADED_RESOLVER=OFF', name: 'openssl' }
|
||||
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 \
|
||||
--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='-j20 ${{ 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: '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 \
|
||||
-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'
|
||||
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
|
||||
|
||||
msys2: # both msys and mingw-w64
|
||||
name: "${{ matrix.sys == 'msys' && 'msys2' || 'mingw' }}, ${{ matrix.build == 'cmake' && 'CM' || 'AM' }} ${{ matrix.env }} ${{ matrix.name }} ${{ matrix.test }}"
|
||||
runs-on: windows-latest
|
||||
|
Loading…
Reference in New Issue
Block a user