Skip to content

Improve CI on Windows, deprecate AppVeyor - #3007

Merged
vitaut merged 2 commits into
fmtlib:masterfrom
dimztimz:ci
Aug 2, 2022
Merged

vitaut merged 2 commits into
fmtlib:masterfrom
dimztimz:ci

Conversation

@dimztimz

@dimztimz dimztimz commented Jul 28, 2022

Copy link
Copy Markdown
Contributor

Improve CI on Windows, deprecate AppVeyor. Fixes #3004.

@dimztimz
dimztimz marked this pull request as ready for review July 28, 2022 19:17
@dimztimz dimztimz changed the title Improve CI on Windows Improve CI on Windows, remove AppVeyor Jul 28, 2022
@dimztimz

Copy link
Copy Markdown
Contributor Author

This is ready. After this open the AppVeyor website and remove this repo from there. Hopefully, that should automatically remove the webhook, if not remove it manually from Github settings.

@vitaut vitaut left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR. Looks great but please keep the old include/exclude rules and add one more include rule for the new config to keep them manageable.

@dimztimz

Copy link
Copy Markdown
Contributor Author

Just so you know in the old rules the one entry in include with shared

include:
- os: windows-2019
platform: Win32
build_type: Debug
shared: -DBUILD_SHARED_LIBS=ON

was not adding a new job but was overriding an existing job generated by the build matrix above.

How about this: test toolset v140 (VS2015) only with standard C++14, v141 (VS2017) only with standard C++17 and toolset v142 with 2 standards, 17 and 20.

Win32 will get only 4 entries: (static, shared) x (debug, release) with the latest v142 toolchain.
on x64 shared will get only 2 entries with the latest toolchain with standard 17.

@dimztimz

dimztimz commented Jul 30, 2022

Copy link
Copy Markdown
Contributor Author

The build matrix that I pushed now generates 15 entries on Windows which is very much acceptable and manageable. There might be simpler rules that generate the same entries but I don't see them right now. Please review then in the view for Github Actions.

It even detected a build failure. Maybe with some recent changes, because I also rebased this on top of master.

@vitaut

vitaut commented Jul 30, 2022

Copy link
Copy Markdown
Contributor

@phprus

phprus commented Jul 30, 2022

Copy link
Copy Markdown
Contributor

@dimztimz

dimztimz commented Jul 30, 2022

Copy link
Copy Markdown
Contributor Author

I will cherry-pick that and put it in this PR as separated commit. Also I will clean my commits.

dimztimz and others added 2 commits July 30, 2022 23:20
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
@dimztimz dimztimz changed the title Improve CI on Windows, remove AppVeyor Improve CI on Windows, deprecates AppVeyor Jul 30, 2022
@dimztimz

Copy link
Copy Markdown
Contributor Author

I think this PR is in better shape now, it has two commits. I removed the commit that removes AppVeyor files to get the green check mark. You can remove them after you disable it from the settings.

@dimztimz dimztimz changed the title Improve CI on Windows, deprecates AppVeyor Improve CI on Windows, deprecate AppVeyor Aug 1, 2022
@vitaut
vitaut merged commit 6c6b1fb into fmtlib:master Aug 2, 2022
@vitaut

vitaut commented Aug 2, 2022

Copy link
Copy Markdown
Contributor

Thanks @dimztimz and @phprus!

@vitaut

vitaut commented Aug 2, 2022

Copy link
Copy Markdown
Contributor

@dimztimz I just noticed that v140 build still reports MSVC 2019, not 2015:

-- Building for: Visual Studio 16 2019
-- CMake version: 3.23.2
-- The CXX compiler identification is MSVC 19.0.24245.0

(https://github.com/fmtlib/fmt/runs/7632834167?check_suite_focus=true)

Do you know why?

@phprus

phprus commented Aug 2, 2022

Copy link
Copy Markdown
Contributor

It's Ok.

-- Building for: Visual Studio 16 2019
-- CMake version: 3.23.2
-- The CXX compiler identification is MSVC 19.0.24245.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/bin/amd64/cl.exe - skipped

Visual Studio - 2019
MSVC - 19.0.24245.0 (toolset from Visual Studio 2015)

@vitaut

vitaut commented Aug 2, 2022

Copy link
Copy Markdown
Contributor

What a versioning mess =). Where did you find the info that 19.0.24245.0 corresponds to 2015?

@phprus

phprus commented Aug 2, 2022

Copy link
Copy Markdown
Contributor

See _MSC_VER value on page https://docs.microsoft.com/en-us/cpp/preprocessor/predefined-macros?view=msvc-170

@dimztimz

dimztimz commented Aug 2, 2022

Copy link
Copy Markdown
Contributor Author

https://en.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B#Internal_version_numbering

It is total mess. There are like four different versions. One is year, one is IDE version, one is toolset version and the last is compiler version. Roughly:

  • toolset v14.0x = compiler v19.0x.
  • toolset v14.1x = compiler v19.1x.
  • toolset v14.2x = compiler v19.2x.

@dimztimz
dimztimz deleted the ci branch August 2, 2022 18:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace AppVeyor with Github actions

3 participants