boolinq icon indicating copy to clipboard operation
boolinq copied to clipboard

[Discussion] CI/CD Pipeline

Open tylerferrara opened this issue 2 years ago • 4 comments

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:

  • Arch: X64 | OS: Ubuntu 16.04.7 LTS (Xenial Xerus)

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

  • clang (v3.8)
  • g++ (v5-v9)
  • gcc (v5-v9)

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:

  • "Which CI tool should run which OS?"
  • "What type of architectures should be supported?"
  • "How should builds be tracked in GitHub?"

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

tylerferrara avatar Jan 04 '22 16:01 tylerferrara

Environment Selection

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

Platforms

  • x86
  • x64
  • ARM

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

Operating Systems

  • macOS
  • Linux
  • Windows

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

tylerferrara avatar Jan 04 '22 16:01 tylerferrara

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

k06a avatar Jan 07 '22 11:01 k06a

@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?

tylerferrara avatar Jan 12 '22 21:01 tylerferrara

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 :)

k06a avatar Jan 13 '22 09:01 k06a