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

solve github actions windows native-tls build #566

Closed
clux opened this issue Jun 24, 2021 · 0 comments · Fixed by #770
Closed

solve github actions windows native-tls build #566

clux opened this issue Jun 24, 2021 · 0 comments · Fixed by #770
Labels
automation ci and testing related help wanted Not immediately prioritised, please help! windows windows specific issues

Comments

@clux
Copy link
Member

clux commented Jun 24, 2021

Problems with the github actions ci setup from #562 (which ALMOST gets a working windows build!) is that openssl is either too slow to install, or it slows down all the other jobs.

Options considered:

  • ❌ adding openssl vendored feature everywhere (but slows down linux builds between 30-80%)
  • ❌ adding openssl vendored under a cfg.windows config (but this requires resolver2)
  • ❌ switching to resolver2 (but this make every crate herein unbuildable with cargo build because we can't select an k8s-openapi feature as a dependency - see features2#drawbacks)
  • ❌ adding a plain vcpkg install (but this adds 6minutes to the windows build (other cached actions are 3min vs. 9min on windows (even after disabling parts of the tests))
  • ❓adding run-vcpkg caching action for a smarter openssl install (but we haven't made this work yet, and have not managed to fix yet (furthest result))
  • ❓adding a native-tls-vendored feature and forking the matrix job to special-case invoke the vendored feature (a bit of work but is doable, some unknown w.r.t. what -vendored libraries to use, follow reqwest with native-tls/vendored?)

Stashing down this because we would like to solve windows CI, but in a time/cache-efficient setup so that we don't have these enormous cycles just because of it.

sketches

vcpkg caching sketch:

      - name: Windows vcpkg install openssl and cache
        uses: lukka/run-vcpkg@v6
        if: matrix.os == 'windows-latest'
        with:
          vcpkgArguments: 'openssl:x64-windows'
          vcpkgDirectory: '${{ runner.workspace }}/b/vcpkg'
          vcpkgGitCommitId: 'master'

with VCPKGRS_DYNAMIC: 1 evar, was the furthest the caching one got.

@clux clux added help wanted Not immediately prioritised, please help! automation ci and testing related labels Jun 24, 2021
clux added a commit that referenced this issue Jun 24, 2021
clux added a commit that referenced this issue Jun 24, 2021
clux added a commit that referenced this issue Jun 24, 2021
* Use GitHub Actions for cross platform CI

* Fix Windows build

* Fix musl build

* Get dapp

* Use vendored openssl

* Stop using cargo action

* carry on github actions

* fix musl job + accidental k8s example test + make integration a Job

* remove circle, and bring back compile checks for examples

* last commit with fresh cache

* limit feature tests to linux (windows build is super slow)

* use vendored openssl on windows

* revert vendoring and resolver

* try different openssl setup on windows

* does it cache though?

* leave out windows for now - #566

* ping hooks - 2021-06-24

Co-authored-by: kazk <[email protected]>
@clux clux added this to Kube Roadmap Nov 3, 2021
@clux clux moved this to Backlog in Kube Roadmap Nov 3, 2021
@kazk kazk added the windows windows specific issues label Nov 5, 2021
@clux clux mentioned this issue Nov 21, 2021
33 tasks
@clux clux linked a pull request Dec 23, 2021 that will close this issue
@clux clux closed this as completed in #770 Dec 26, 2021
Repository owner moved this from Backlog to Done in Kube Roadmap Dec 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automation ci and testing related help wanted Not immediately prioritised, please help! windows windows specific issues
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

2 participants