Skip to content

vs2017/vs2019/llvm-clang-10 full build on GitHub Actions - #420

Merged
Max Golovanov (maxgolov) merged 28 commits into
masterfrom
maxgolov/build_all_vs2017
Jun 25, 2020
Merged

vs2017/vs2019/llvm-clang-10 full build on GitHub Actions#420
Max Golovanov (maxgolov) merged 28 commits into
masterfrom
maxgolov/build_all_vs2017

Conversation

@maxgolov

@maxgolov Max Golovanov (maxgolov) commented Jun 6, 2020

Copy link
Copy Markdown
Contributor

Due to security hardening it is now a bit more problematic to authorize VSO pipelines running on 'external to GitHub' infra.

Instead of maintaining a separate setup, I'm moving all full build loops for Windows from VSO to GitHub Actions:

  • vs2017 "build all" for all targets, EXCLUDING ARM32/64
  • vs2019 "build all" for all targets, EXCLUDING ARM32/64
  • llvm-clang build - to verify that the code compiles with clang on Windows (Edge uses clang)

Why excluding ARM64? Default GitHub Action runners for vs2017 and vs2019 do not install the necessary ARM build tools and SDKs. It takes about 20-25 minutes to download the necessary deps, then another extra 20-30 minutes to build for ARM, adding up to total time of over 1 hour and a half. This was somewhat faster on VSO, where we had a physical box attached - with the VSO / Azure pipeline agent. Now we want to avoid having a separate box for that.

I'm also adding minor code clean-up to make code compatible with latest Visual Studio 2019 (C++17), which triggers an error for anonymous structs.

Move build-all.bat from VSO to GitHub Actions
@maxgolov Max Golovanov (maxgolov) changed the title Create build-windows-vs2017.yaml Moving vs2017 full build and clang build from Azure Pipelines to GitHub Actions Jun 6, 2020

@sid-dahiya Sid Dahiya (sid-dahiya) 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.

Other than the Vs2019/Vs2017 comment, LGTM.

Comment thread .github/workflows/build-windows-vs2017.yaml Outdated
@maxgolov Max Golovanov (maxgolov) changed the title Moving vs2017 full build and clang build from Azure Pipelines to GitHub Actions vs2017/vs2019/llvm-clang-10 full build on GitHub Actions Jun 18, 2020
@maxgolov

Copy link
Copy Markdown
Contributor Author

Martin Harriman (@larvacea) Jason Bray (@bliptec) David Brown (@kindbe) Reiley Yang (@reyang) Matthew Koscumb (@mkoscumb)

Please take a look at this one. It's near-zero code change, but quite a bit of projects adjustment. It's re-adding back the full build tests we had to turn off after GitHub hardening on Jun 1st.. Plus it adds new build-all for vs2017(v141), vs2019(v142), vs2019-clang, and a minor C++17 compatibility fix for latest vs2019 compiler update. All checks passed.

@maxgolov

Max Golovanov (maxgolov) commented Jun 24, 2020

Copy link
Copy Markdown
Contributor Author

Downside is that the longest loop for CI is gonna be now taking 80 minutes:

C/C++ CI on Windows (vs2019) / Build (pull_request) Successful in 80m

This is (almost) no different than our previous Full Build loop we had on Azure VSO (msasg, locally hosted agent).

I'd say that running full build on Windows (Win32, UWP) is still important, as we can more efficiently identify the build breaks as they happen, without chasing for one who broke it after. 80 minutes should not be that bad. In case if some urgent fix has to be integrated, Administrators still have ability to force-merge without completing this check. It is also set to optional.

if "%%a"=="m32" (
set ARCH=Win32
set ARCH_GEN=
set ARCH_GEN= Win32

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Is the space intentional in Win32?

@reyang Reiley Yang (reyang) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM.

@maxgolov
Max Golovanov (maxgolov) merged commit 08537b4 into master Jun 25, 2020
Max Golovanov (maxgolov) added a commit that referenced this pull request Oct 19, 2020
vs2017/vs2019/llvm-clang-10 full build on GitHub Actions
@maxgolov
Max Golovanov (maxgolov) deleted the maxgolov/build_all_vs2017 branch October 19, 2020 04:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build infra Build, test and CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade to more modern Visual Studio 2019 and Win 10 SDK

3 participants