Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows compilation: enable compiling expanded list of extensions in envoy-static #10542

Merged
merged 54 commits into from
Apr 21, 2020
Merged

Windows compilation: enable compiling expanded list of extensions in envoy-static #10542

merged 54 commits into from
Apr 21, 2020

Conversation

sunjayBhatia
Copy link
Member

@sunjayBhatia sunjayBhatia commented Mar 26, 2020

Description:

  • replace WINDOWS_EXTENSIONS with very short WINDOWS_SKIP_TARGETS list
  • fixes kafka compilation (MSVC parses the literal of INT32_MIN incorrectly)
  • fixes luajit and moonjit compilation (only one jit is elected)
  • merge windows .bazelrc into workspace .bazelrc
  • install MSYS2 into the CI worker to ensure the expected shell environment for bazel and build tools are
    correctly on the PATH
  • Building/running tests in CI is not yet enabled, we are investigating options related to Windows RBE Tracking Issue #10619

Risk Level: Low (Windows compilation only, small source changes)
Testing: N/A, just enabling Windows compilation
Docs Changes: N/A
Release Notes: N/A

sunjayBhatia and others added 4 commits March 26, 2020 11:10
Test macro missing the second argument (for test name), causing
compilation on Windows to fail. It appears to have no purpose,
copy-paste error?

Co-authored-by: Sunjay Bhatia <sbhatia@pivotal.io>
Co-authored-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
- Lizan has indicated a desire to refactor the envoy_extension_*
  API's to better handle target platform builds

- See #10365 for attempted
  workaround development, we were unsuccessful at a short-term
  fix to integrate WINDOWS_SKIP_TARGETS / PPC_SKIP_TARGETS

- Individually exclude affected tests for the time being

Co-authored-by: Sunjay Bhatia <sbhatia@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Co-authored-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Co-authored-by: William A Rowe Jr <wrowe@pivotal.io>
- having paths greater than 240 characters breaks compilation on Windows
  with errors indicating header files do not exist in the includes
  directory
- the adaptive_concurrency/concurrency_controller name is repetitive,
  this change shortens it to adaptive_concurrency/controller to get past
  Windows file path limits
- namespace changed to AdaptiveConcurrency::Controller to mimic same
  shortening, AdaptiveConcurrency::Controller::ConcurrencyController
  class is kept as that seems an appropriately descriptive name for the
  class

Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Co-authored-by: Sunjay Bhatia <sbhatia@pivotal.io>
Co-authored-by: William A Rowe Jr <wrowe@pivotal.io>
- replace WINDOWS_EXTENSIONS with very short WINDOWS_SKIP_TARGETS list
- fixes kafka compilation (MSVC parses the literal of INT32_MIN incorrectly)
- fixes luajit and moonjit compilation (only one jit is elected)
- extensions _SKIP_TARGET lists converted from dict to list
- compilation failures of the test packages are tagged skip_on_windows
- timeouts in failing packages are tagged fails_on_windows
- additional failing tests will be tagged in a subsequent commit

Co-authored-by: Sunjay Bhatia <sbhatia@pivotal.io>
Co-authored-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Co-authored-by: Sunjay Bhatia <sbhatia@pivotal.io>
Co-authored-by: William A Rowe Jr <wrowe@pivotal.io>
Co-authored-by: Sunjay Bhatia <sbhatia@pivotal.io>
Co-authored-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Co-authored-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Co-authored-by: Sunjay Bhatia <sbhatia@pivotal.io>
@sunjayBhatia
Copy link
Member Author

sunjayBhatia commented Mar 26, 2020

Running into Windows Azure CI environment issues, seems like the link.exe being found on the PATH is not the correct link.exe from MSVC (it is the GNU link utility we presume from mingw), we are seeing what we can do about this scenario

Also make creation of TMPDIR symlink idempotent

Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Co-authored-by: Sunjay Bhatia <sbhatia@pivotal.io>
Co-authored-by: William A Rowe Jr <wrowe@pivotal.io>
Also adjust path find/replace to be more exact

Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Co-authored-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Co-authored-by: Sunjay Bhatia <sbhatia@pivotal.io>
@sunjayBhatia
Copy link
Member Author

sunjayBhatia commented Mar 26, 2020

It looks like git bash is the source of our problems, we're going to install msys2 in our CI environment in the setup phase and rely on that instead of fighting git bash (it prepends its own bin directories to the PATH, so any invocation by bazel undoes what we attempted to fix by manipulating the PATH earlier)

Hopefully, according to actions/runner-images#632 msys2 will be installed in the base image and we can rely on that installation in the future

Will stop using git's somewhat ill-behaved bash.exe. First in the path
is the flavor that the Azure environment will elect for each bash step.

Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
@jmarantz
Copy link
Contributor

hi -- can you ping when this is ready for review?

@jmarantz
Copy link
Contributor

/wait

Add comment explaining why we update the PATH temporarily

Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
sunjayBhatia and others added 8 commits March 27, 2020 13:27
when tar sees 'C:' it assumes a uri

Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io><Paste>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
- so the powershell task does not fail on warnings
- also replace unzip, zip with compression for a more full suite of
tools

Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
So we don't have to deal with powershell redirection

Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io><Paste>
the previous syntax was working with git bash, we're using msys2 bash so
potentially there are differences, use the more "correct" looking
invocation

Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
@sunjayBhatia sunjayBhatia changed the title Windows compilation: test sources and extensions Windows compilation: enable compiling expanded list of extensions in envoy-static Apr 17, 2020
@sunjayBhatia
Copy link
Member Author

sunjayBhatia commented Apr 17, 2020

Updated the title and description with the more limited scope for this PR, let us know if we should pare this set of changes down more for a more manageable review.

@mattklein123 mattklein123 self-assigned this Apr 18, 2020
@mattklein123
Copy link
Member

Please merge master. Coverage should be fixed now (needs master merge anyway).

/wait

…mmon-tests

Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
wrowe and others added 2 commits April 18, 2020 19:59
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
@wrowe
Copy link
Contributor

wrowe commented Apr 20, 2020

/retest

for macOS

@repokitteh-read-only
Copy link

🤷‍♀️ nothing to rebuild.

🐱

Caused by: a #10542 (comment) was created by @wrowe.

see: more, trace.

Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Co-authored-by: William Rowe <wrowe@pivotal.io>
@wrowe
Copy link
Contributor

wrowe commented Apr 20, 2020

It doesn't seem possible to get through the macOS build step due to the current CI situation. Otherwise this appears to be looking good for acceptance.

@mattklein123
Copy link
Member

Thanks this LGTM. Can you please merge master? OSX is reliably passing now on master. Thank you!

/wait

…mmon-tests

Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
wrowe and others added 2 commits April 21, 2020 04:38
as requested for PR 10822 by mattklein123

Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
@wrowe
Copy link
Contributor

wrowe commented Apr 21, 2020

/retest
... to show coverage publish completion

@repokitteh-read-only
Copy link

🐴 hold your horses - no failures detected, yet.

🐱

Caused by: a #10542 (comment) was created by @wrowe.

see: more, trace.

Copy link
Member

@mattklein123 mattklein123 left a comment

Choose a reason for hiding this comment

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

Thanks!

@mattklein123 mattklein123 merged commit 3bcfc2b into envoyproxy:master Apr 21, 2020
@sunjayBhatia sunjayBhatia deleted the enabling-windows-common-tests branch April 21, 2020 18:05
penguingao pushed a commit to penguingao/envoy that referenced this pull request Apr 22, 2020
…envoy-static (envoyproxy#10542)

Co-authored-by: Sunjay Bhatia <sbhatia@pivotal.io>
Co-authored-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: Sunjay Bhatia <sbhatia@pivotal.io>
Signed-off-by: William A Rowe Jr <wrowe@pivotal.io>
Signed-off-by: pengg <pengg@google.com>
@sunjayBhatia sunjayBhatia mentioned this pull request Apr 24, 2020
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.

5 participants