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

ci: add the possitility to use other build generators than ninja inside the ci #3276

Merged
merged 13 commits into from
Sep 12, 2024

Conversation

Algiane
Copy link
Contributor

@Algiane Algiane commented Aug 9, 2024

PR objectives

  1. Provide the possibility to remove the dependency to the Ninja tool in the ci (smaller docker images, lighter setting)
  2. Test the Pangea environment (we mainly use unix makefiles, not Ninja ones) since errors may differ depending on the generator used (see pangea3 PR where ninja fails while make succeed)

Implementation

  • Add the possibility to pass one of the --ninja, --makefile, --xcode or --eclipse command line arguments to the ci_build_and_test_in_container.sh script. Variable names have been chosen in agreement with the config-build.py script. The --makefile option is added to build unix makefiles.

  • Add a BUILD_GENERATOR input for the build_and_test.yml script. --ninja option is used by default to enable the Ninja generator (as it was the initial ci behaviour). The default value is used for CPU builds.

  • Use of the BUILD_GENERATOR value of the GPU builds as input for the build_and_test.yml call (because I will link this PR to another one where one of the GPU build will use the unix makefile generator).

  • Set the BUILD_GENERATOR variable to --ninja in the matrix of GPU builds. If not explicitely provided in the matrix definition, an empty string (leading to unix makefile generation) is passed as BUILD_GENERATOR input to the build_and_test.yml script

Validation

Commit 077a1c08bdbf5 has been used to validate that for now all jobs that were using ninja still use it and that the PR doesn't modify the ci.

Fixes PR #3159 for which ninja build is broken since commit 4bef600a.

@Algiane Algiane requested a review from rrsettgast as a code owner August 9, 2024 13:37
@Algiane Algiane self-assigned this Aug 9, 2024
@Algiane Algiane added ci: run CUDA builds Allows to triggers (costly) CUDA jobs type: CI Concerns github workflows or generic CI ci: run integrated tests Allows to run the integrated tests in GEOS CI DO NOT MERGE ! flag: no rebaseline Does not require rebaseline labels Aug 9, 2024
@Algiane Algiane force-pushed the feature/algiane/build-generator-option-in-ci branch from b41f205 to 66ed037 Compare August 9, 2024 13:59
Copy link

codecov bot commented Aug 9, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 56.60%. Comparing base (e07cec3) to head (f0d5c55).
Report is 84 commits behind head on develop.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #3276   +/-   ##
========================================
  Coverage    56.60%   56.60%           
========================================
  Files         1064     1064           
  Lines        89765    89765           
========================================
  Hits         50807    50807           
  Misses       38958    38958           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Algiane Algiane changed the title feat: add the possitility to use other build generators than ninja inside the ci ci: add the possitility to use other build generators than ninja inside the ci Aug 12, 2024
… processes are not modified by this PR and still use Ninja generator.
…rrent ci processes are not modified by this PR and still use Ninja generator."

This reverts commit 66ed037.
Modification of argument names to use those expected by the config-build script. It allows to avoid issues raised by the whitespace in the "Unix Makefiles" value previously used (the parsing done inside the github action weirdly splits the keyword on the whitespace, ignoring the use of quotes or escape (while it runs without any error in a local bash) .
@Algiane Algiane force-pushed the feature/algiane/build-generator-option-in-ci branch from 87c7fe9 to 077a1c0 Compare August 12, 2024 15:06
@Algiane Algiane requested review from CusiniM and Bubusch August 19, 2024 16:07
Copy link
Member

@rrsettgast rrsettgast left a comment

Choose a reason for hiding this comment

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

I don't see a use for Xcode and eclipse in this context.

Comment on lines 41 to 42
--eclipse
Use "Eclipse CDT4 - Unix Makefiles" as build system generator.
Copy link
Member

Choose a reason for hiding this comment

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

Why would we include this?

Copy link
Contributor

Choose a reason for hiding this comment

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

removed

Comment on lines 67 to 68
--xcode
Use "Xcode" as build system generator.
Copy link
Member

Choose a reason for hiding this comment

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

also...why include this?

Copy link
Contributor

Choose a reason for hiding this comment

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

removed

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It was for genericity purpose. The script can be executed outside the ci by a local docker run call so I was guessing that we may want to use one of the generators supported by the project.
But I have not tested it so ok to remove it and to focus on the ci only.

@rrsettgast rrsettgast merged commit 8100a32 into develop Sep 12, 2024
25 checks passed
@rrsettgast rrsettgast deleted the feature/algiane/build-generator-option-in-ci branch September 12, 2024 19:15
rrsettgast added a commit that referenced this pull request Sep 17, 2024
…de the ci (#3276)

* Add possibility to use other build generators than ninja in ci.

---------

Co-authored-by: Gaetan <gaetan.fuss.fr@gmail.com>
Co-authored-by: Randolph Settgast <settgast1@llnl.gov>
rrsettgast added a commit that referenced this pull request Sep 17, 2024
…de the ci (#3276)

* Add possibility to use other build generators than ninja in ci.

---------

Co-authored-by: Gaetan <gaetan.fuss.fr@gmail.com>
Co-authored-by: Randolph Settgast <settgast1@llnl.gov>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run integrated tests Allows to run the integrated tests in GEOS CI flag: no rebaseline Does not require rebaseline flag: ready for review type: CI Concerns github workflows or generic CI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants