via new env `FIXTURE_TRACE_NO_DEBUGDUMP`.
Also:
- CI: set `FIXTURE_TRACE_NO_DEBUGDUMP` to make detailed logs (much)
shorter and more readable for the common debug use-case.
- GHA: enable debug trace for clang-tidy OpenSSL jobs and simplify
configuration.
Cherry-picked from #2485Closes#2487
To test build interactions between old-MSVC-specific `ssh2_snprintf()`
and its use in tests.
Also:
- rework configuring tests.
- fix ending up in unexpected pwd after docker install, failing disk
space step.
- drop redundant condition in disk space step.
- skip `on_finish` step for non-test-run jobs.
- migrate `test_script` step from Powershell to bash.
Closes#2330
- re-sync UWP config with curl CI.
- drop accidental verbose mode for the recently added examples build step.
Follow-up to 6bf392f627#2276
- GHA: fix building examples in different Debug/Release config than main build step.
Follow-up to 6bf392f627#2276
- switch some jobs to Debug config (all were Release before this patch).
Should be faster, while consuming more disk. The differences in libssh2
are small.
- log disk space usage in Windows jobs.
Also tested `-INCREMENTAL:OFF`, but it did not make any measurable speed
or disk usage difference.
Closes#2314
- cmake: do not build examples automatically. This makes the
`BUILD_EXAMPLES=OFF` option redundant.
- cmake: build all examples with target `libssh2-examples`.
- cmake: build-test all examples with target `libssh2-examples-build`.
To save linking them 23 times in CI.
- autotools: add root `examples` build target to build examples.
- CI: build examples in a separate step.
(for autotools, make them not build in the main build step by
configuring with `--disable-examples-build`)
To make the build more transparent, scale better, be faster in CI, also
syncing with curl.
Slight downsides after this patch:
- cmake and autotools have different default behavior for building
examples.
- cmake needs an extra step to build examples. (an explicit option is
planned to restore the old behavior.)
Also:
- sync BSD matrix build-tool naming with rest of jobs.
Closes#2276
Job | Before | After
-------------------------------------------------------------------- | ------ | -------
VS2026, OpenSSL 3, x64, Server 2019, clang-cl | 1m22s | 49s
VS2022, OpenSSL 3, x64, Server 2019, Shared-only, docs | 1m29s | 52s
VS2015, OpenSSL 1.1, x86, Server 2016, Static-only | 2m18s | 51s
VS2015, OpenSSL 1.1, x64, Server 2012 R2, Shared-only, Debug-logging | 2m9s | 50s
VS2013, OpenSSL 1.1, x64, Server 2012 R2 | 54s | 44s
VS2013, OpenSSL 1.1, x86, Server 2012 R2, Shared-only | 45s | 33s
VS2010, WinCNG, x64, Build-only, non-unity, examples, docs | 49s | 53s
VS2015, WinCNG, x64, Server 2012 R2 | 2mi19s | 1m28s
VS2015, WinCNG, x86, Server 2016 | 2mi23s | 51s
Total | 25m43s | 18m51s
Before: https://ci.appveyor.com/project/libssh2org/libssh2/builds/54220007
After: https://ci.appveyor.com/project/libssh2org/libssh2/builds/54220033
There is delay (between) starting up the jobs, hence the longer total
than the sum of the individual job times. The runtime itself is below 8
minutes after this patch (vs. 15m before, and 27m before #2051). It
looks like the total time is around double the raw runtime.
Follow-up to 39cd3a82c7#2051Closes#2055
- drop 2 jobs that were build-only and also run on GHA.
(Saving 4 minutes)
- comment out a job that's only interesting when running tests.
(Saving 2 minutes)
- limit three jobs to build either shared/static lib.
- limit building documentation to two (old, new) jobs.
- limit building tests to jobs also running them (currently none).
Tests are kept being built on GHA.
- limit building example to the oldest supported MSVC version.
- adjust GHA setting to replace dropped AppVeyor CI combinations.
To reduce CI turnaround time. AppVeyor CI jobs are sequential, and may
take hours till they finish when queued up due to multiple PRs or a
merge to master. One run took 45-60 minutes before this patch. After,
it's about half of that.
Before:
```
VS2026, OpenSSL 3, x64, Server 2019, clang-cl 2m16s
VS2022, OpenSSL 3, x64, Server 2019 2m2s
VS2015, OpenSSL 1.1, x86, Server 2016 4m13s
VS2015, OpenSSL 1.1, x64, Server 2012 R2, Debug-logging 3m50s
VS2013, OpenSSL 1.1, x64, Server 2012 R2 53s
VS2013, OpenSSL 1.1, x86, Server 2012 R2, Shared-only 49s
VS2013, OpenSSL 1.1, x64, Build-only, Static-only 53s
VS2010, WinCNG, x64, Build-only, non-unity 48s
VS2026, WinCNG, x64, Server 2019, Debug-logging 1m58s
VS2022, WinCNG, ARM64, Build-only 2m
VS2015, WinCNG, x64, Server 2012 R2 3m43s
VS2015, WinCNG, x86, Server 2016 3m29s
```
Ref: https://ci.appveyor.com/project/libssh2org/libssh2/builds/54205019
After:
```
VS2026, OpenSSL 3, x64, Server 2019, clang-cl 1m45s
VS2022, OpenSSL 3, x64, Server 2019, Shared-only, docs 1m50s
VS2015, OpenSSL 1.1, x86, Server 2016, Static-only 2m20s
VS2015, OpenSSL 1.1, x64, Server 2012 R2, Shared-only, Debug-logging 2m15s
VS2013, OpenSSL 1.1, x64, Server 2012 R2 46s
VS2013, OpenSSL 1.1, x86, Server 2012 R2, Shared-only 41s
VS2010, WinCNG, x64, Build-only, non-unity, examples, docs 48s
VS2015, WinCNG, x64, Server 2012 R2 2m21s
VS2015, WinCNG, x86, Server 2016 2m22s
```
Ref: https://ci.appveyor.com/project/libssh2org/libssh2/builds/54205461Closes#2051
To avoid chocolatey as a dependency, to add hash verification, and to
control version bumps. The latter is also the slight downside, it needs
to be bumped manually.
Note: With tests disabled docker-cli isn't actually used in CI at the
moment.
Cherry-picked from #1892Closes#1894