Skip to content

solve github actions windows native-tls build #566

@clux

Description

@clux

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    automationci and testing relatedhelp wantedNot immediately prioritised, please help!windowswindows specific issues

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions