k06a / boolinq

Simplest C++ header-only LINQ template library
MIT License
631 stars 80 forks source link

[Discussion] CI/CD Pipeline #65

Open tylerferrara opened 2 years ago

tylerferrara commented 2 years ago

Current CI/CD Pipeline

The current project simply uses TravisCI to run builds and tests for all PRs and branches in this repository. As defined in the current .travis.yml, all builds take place in a single environment:

This environment is used to build boolinq with the following compilers:

Next Steps

Tracked by Issues: #64 & #63, efforts are being made to support the windows C++ compiler msvc, add the AppVeyor CI tool and build with different C++ standards. These changes to the project require a closer look at the entire CI/CD pipeline, as questions remain unclear:

This issue may act as a medium for discussion regarding questions and proposals to the CI/CD pipeline of this project.

tylerferrara commented 2 years ago

Environment Selection

In respect to AppVeyor, this project should support the following:

Platforms

Additionally, all operating systems defined here should also be supported, including:

Operating Systems

Tooling

Assuming all environments are supported and can be build and tested successfully on AppVeyor, would it be safe to assume this pipeline deprecates TravisCI? Initially, this may not be a smooth transition, requiring both CI tools to coexist, but eventually, is there a plan to ONLY use AppVeyor in the future?

Would love to know your thoughts @k06a

k06a commented 2 years ago

@tylerferrara I think having both would be safer in case one of these services will discontinue opensource tier or even shutdown.

tylerferrara commented 2 years ago

@k06a After lots of testing I'm able to run all three platforms. However, Windows has been shown to take several minutes to finish compiling. My question is:

How many tests are you interested in running on windows?

Running a single compilation & testing job with the latest C++ compiler may be the best bet, as you'll at least be able to know if the project can run on windows.

Are there any constrains on time to completion?

k06a commented 2 years ago

I wish we could run all the tests on Windows, if something is not possible we could use ifdefs to exclude it, but hope we could fit all. No time constraints :)