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

Integration tests #367

Merged
merged 124 commits into from
Jun 4, 2024
Merged

Integration tests #367

merged 124 commits into from
Jun 4, 2024

Conversation

vijaiaeroastro
Copy link
Collaborator

This PR includes the integration tests to the existing build.yml script. This completes the issue #361.

It has 3 actions:

integration-tests-latest-commit
integration-tests-latest-release
integration-tests-last-two-releases

All of the integration tests dynamically choose the latest test performance suite from 3MFConsortium/test_suites. It picks the latest test suite zip file from the releases section automatically.

  • In the first action, it picks the SDK artifact from the current commit and runs the integration test using that SDK.
  • In the second case, the action automatically determines the latest release from the lib3mf repository, downloads the SDK, and runs the integration tests on that SDK.
  • In the third scenario, the action determines the latest release dynamically along with the release before that, runs the integration tests on both of them, and makes a simple comparison against the total script execution time.

The latest commit action is triggered on every build. The other two have an if condition that checks if the current action is being run on a release event and only allows it in that scenario. The trigger condition can be commented/uncommented based on further discussions.

…anges in the root CMakeLists.txt to accomodate it + Introduction of CPack
…ng is an issue). Also symlinks seem to disappear. This will require a change in cmake config script since it requires exact .so file to be referenced instead of lib3mf.so (A problem to worry at a latter time)
@vijaiaeroastro
Copy link
Collaborator Author

  • LIB3MF_VERSION variable is now inferred from the CMakeLists.txt
  • CPack examples are not packed along with the SDK anymore but they are still tested in the deploy stage
  • Python bindings have a test in all 3 platforms
  • All the action recipes used were upgraded to the latest ones to reduce warnings in github actions. Code coverage action is kept back since the newer version reports drastically lower coverage and causes failure

@gangatp gangatp self-requested a review June 4, 2024 08:45
Copy link
Collaborator

@gangatp gangatp left a comment

Choose a reason for hiding this comment

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

Looks good. Thanks you!!

There are some merge conflicts. Please check.

@vijaiaeroastro vijaiaeroastro merged commit 8a26e0d into develop Jun 4, 2024
40 checks passed
@vijaiaeroastro vijaiaeroastro deleted the integration_tests branch June 4, 2024 13:35
@vijaiaeroastro
Copy link
Collaborator Author

Thanks a lot for taking the time Pradeep. I have merged.
Did you have conflicts with your branch ?
The automated check from Github did not report any conflicts.
I will check once more in develop branch.

vijaiaeroastro added a commit that referenced this pull request Jun 4, 2024
…introduction + CI / CD action improvements

* Added CMake and CPack configuration for building and packaging lib3mf across all platforms, including Debian and RPM builds + VCPKG.
* Updated and debugged workflows, .gitignore, and integration tests, ensuring smooth deployment and artifact handling.
* Fixed paths and linking issues across Windows, macOS, and Linux, including handling symlinks and double zipping problems.
* Enhanced SDK generation and included examples for various build variants, ensuring compatibility and thorough testing.
* Cleaned up and finalized actions, environment variables, and documentation for consistent and efficient builds and deployments.
vijaiaeroastro added a commit that referenced this pull request Aug 3, 2024
* skipping leading whitespaces

* Update CMakeLists.txt to ignore cmake_osx_architecture in TESTS

Previously libreSSL could not be built on arm64 machines, so there was a flag to build the test only for intel x86_64 machines. 

After updating the libreSSL library, it might not be the case anymore. So removing the CMAKE_OSX_ARCHITECTURE flag.

* First batch of python examples

* Update 3mf copyright based on existing template

* Modify python imports to work with SDK package too (Even if lib3mf is not installed through PyPI, the examples would work as long as the SDK structure is maintained)

* Integration tests (#367)

* Added CMake and CPack configuration for building and packaging lib3mf across all platforms, including Debian and RPM builds + VCPKG.
* Updated and debugged workflows, .gitignore, and integration tests, ensuring smooth deployment and artifact handling.
* Fixed paths and linking issues across Windows, macOS, and Linux, including handling symlinks and double zipping problems.    
* Enhanced SDK generation and included examples for various build variants, ensuring compatibility and thorough testing.    
* Cleaned up and finalized actions, environment variables, and documentation for consistent and efficient builds and deployments.

* Integration tests (#367) + CMake Refactoring + CPack based Packaging introduction + CI / CD action improvements

* Added CMake and CPack configuration for building and packaging lib3mf across all platforms, including Debian and RPM builds + VCPKG.
* Updated and debugged workflows, .gitignore, and integration tests, ensuring smooth deployment and artifact handling.
* Fixed paths and linking issues across Windows, macOS, and Linux, including handling symlinks and double zipping problems.
* Enhanced SDK generation and included examples for various build variants, ensuring compatibility and thorough testing.
* Cleaned up and finalized actions, environment variables, and documentation for consistent and efficient builds and deployments.

* Issue-363: changing int to long long for putDoubleFactor

* fixing stringRepResenationsDiffer to use long long putFactor

* Include a additional entry to build.yml to pack source code + submodules (#372)

* Include an additional artifact that packs the code with submodules

* exclude unnecessary stuff

* avoid recursion

* avoid zip.zip

* Included a new script to automatically update lib3mf version in all the required places

* Include some rudimentary documentation in lib3mf_version_update.py

* updating zlib 1.3.1

* updating zlib 1.3.1 version file

* Update README.md

* Modify integration tests

* Fix some mistakes in integration tests

* Accidentally reverted zlib version. Switching back

* Include total must pass and must fail in all integration test outputs

* There's multiple release artifacts with .zip extension. Some adjustments are required

* Fix the issue in 2 integration test workflows. Only 1 must fail now

* Attempting to fix the last two releases action

* Cleaned a little more. All Integration tests should pass now.

* Introduce some more generics in actions (Integration test suite url is not hard coded anymore)

* Make test suite url fetching local to the test jobs

* Switch to hard coded urls for now. Can switch in the next release

* Weird osx build error fix in .yml and .sh

---------

Co-authored-by: Martin Weismann <[email protected]>
Co-authored-by: Vijai Kumar S <[email protected]>
Co-authored-by: Vijai Kumar S <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants