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

Actions Overhaul #93

Merged
merged 4 commits into from
Apr 16, 2022
Merged

Actions Overhaul #93

merged 4 commits into from
Apr 16, 2022

Conversation

ardasener
Copy link
Contributor

@ardasener ardasener commented Apr 13, 2022

Summary

This pull request contains an overhaul of our Github Actions setup which is used for testing, automatic documentation generation and as of now automatic releases. As you may be aware, sparsebase will soon switch to a public repository and as a result, we are less concerned with keeping the running time of actions low since there is no limit on public repositories. On this basis, these new actions provide more coverage in tests and perform additional features.

Action Types

Testing XXX

  • These actions will run on every push and pull request to the main and develop branches.
  • There is a separate testing function for each supported operating system (windows, mac and ubuntu). This is done to ensure more flexibility in the feature.
  • When testing the library is always built in Release mode with the default types. The idea here is that all the types used in examples or tests should be included by default so as to not confuse the users. Feel free to comment if you disagree.
  • Both the tests in the tests/suites directory and the examples registered in the examples/run_all_examples.py file will be executed. If any of these result in a non-zero exit code, the action will fail.
  • Windows action uses MSYS2 platform. While other platforms like Cygwin and even Microsoft's MSVC should work, MSYS2 was simply easier to work with. As a result while the library will try to support these other platforms as much as possible, MSYS2 will be the officially supported and tested platform for Windows.
  • According to the tests I conducted, Ubuntu servers were the fastest ones. As a result they are also used to test the header only build of the library.

Docs & Release

  • This action will only trigger on a push containing a tag. The tag should be of the pattern v*.*.*. In other words, this action should trigger on commits with a semantic version number tagged.
  • The following steps will be performed by this action:
    • Documentation for the library will be generated using sphinx and doxygen in both html and pdf formats.
    • The html documentation will be hosted on Github Pages.
    • Library will be build in header-only mode. And the resulting files will be zipped.
    • The pdf documentation, zipped build and a copy of the LICENSE file from the repository will be released. Source code is also automatically included here.
  • So, the latest version's documentation will be hosted on Github Pages and the previous documentation will be obtainable in pdf format along with the release and source code.
  • Those with admin rights to the repository can manually remove releases if needed.

Copy link
Contributor

@AmroAlJundi AmroAlJundi left a comment

Choose a reason for hiding this comment

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

Great update.

I think the python script should use its source directory when looking for the executables. This way, you won't need to be in the same directory as the script to use it.

Also, the CMake file should copy the script to the build directory in my opinion. What do you think?

@AmroAlJundi AmroAlJundi self-requested a review April 15, 2022 15:33
AmroAlJundi
AmroAlJundi previously approved these changes Apr 15, 2022
@Atahanak Atahanak merged commit 277b1f9 into develop Apr 16, 2022
@Atahanak Atahanak deleted the github/actions_overhaul branch April 16, 2022 14:26
@ardasener ardasener added state: approved Approved to proceed. Ready to be merged and removed state: review needed labels Apr 16, 2022
SinanEkm pushed a commit that referenced this pull request Aug 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
state: approved Approved to proceed. Ready to be merged type: testing Related to testing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants