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

First draft of Continuous Integration doc #17

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open

Conversation

gaffarelj
Copy link
Member

Hi @DominicDirkx and @geoffreygarrett,

I created a new page for the developer docs on Continuous Integration, where I try to describe the most important aspects of everything related to GitHub actions, Azure, Anaconda, and Readthedocs, and how all of them are used with each other to ease the release of tudat/tudatpy conda packages and the API docs.

I am quite sure that I am forgetting some aspects of things, and I may not have gone into enough depth on some technical details. I think I don't especially think about some aspects anymore since they are at the back of my head by now. So please do tell me where you would want to see more details :)

Or more generally, any comment would be appreciated, when you have the time 🙂

@gaffarelj gaffarelj added the documentation Improvements or additions to documentation label Jul 14, 2022
@gaffarelj gaffarelj self-assigned this Jul 14, 2022
GitHub actions are integrated in Tudat development process to ease and automate the build and release of conda packages.

Most importantly, the `webservices-dispatch-action repository <https://github.com/tudat-team/webservices-dispatch-action>`_ contains code that is used to trigger a build of a conda package.
More information on how this action works is given in that repo's `README <https://github.com/tudat-team/webservices-dispatch-action/blob/main/README.md>`_.
Copy link
Member

Choose a reason for hiding this comment

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

The readme mainly gives information on what it does, and less on how it works. Could you add (here or in the README) some details of what each file in the webservices repo does, and how exactly its interaction with other repos works?

Copy link
Member Author

Choose a reason for hiding this comment

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

I added more information on this in the webservices-dispatch-action README with 9150bd4, in new Repo structure and Communication with other repositories sections.

@geoffreygarrett could you, when you have time, take a look at the Communication with other repositories section? I think that the order in which the actions communicate with each other may be incorrect. And I believe that this setup is clearer to you than it is to me.

In both cases, if changes are caused by the action, they are automatically pushed first to the project repository, then to the feedstock repository.
As a reminder, pushing to the feedstock repository will then trigger a build of the conda package trough Azure (as discussed :ref:`below<Azure>`).

Last but not least, this action is triggered automatically either every 24 hours (nightly), or by adding a ``[CI]`` or ``[rerender]`` tag in a commit to a project repository.
Copy link
Member

Choose a reason for hiding this comment

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

These tags have to be at the beginning of the commit message right?

Copy link
Member Author

Choose a reason for hiding this comment

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

They don't, and the capitalisation also does not matter. This can easily be changed if needed (the tags are detected using these lines of code). I updated the docs with this information in ffe42e8.

.. image:: https://readthedocs.org/projects/tudatpy/badge/?version=latest
:target: https://readthedocs.org/projects/tudatpy/builds/

After a full pipeline is completed for all platforms for tudatpy, a trigger is made so the documentation is generated by Readthedocs.
Copy link
Member

Choose a reason for hiding this comment

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

Where/how exactly is this trigger?

Copy link
Member Author

Choose a reason for hiding this comment

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

This is done trough these settings in Azure. In the Triggers > Build completion. A trigger is set so that the tudatpy-readthedocs-trigger pipeline is run when a tudatpy-feedstock pipeline is fully and successfully build. These infos have been added to the docs with 10ac841.

@DominicDirkx
Copy link
Member

DominicDirkx commented Jul 25, 2022

@gaffarelj Apologies for the delay on this. Overall, I think it's very clear, and does a good job of explaining what happens without going into too much detail. I added a few small questions in the docs you wrote, where it would be good to have a little more explanation on how things are put together. If you have time at some point in the future, could you have a look at them?

@gaffarelj
Copy link
Member Author

Thanks for the comments. I will make modifications to answer them next week 🙂

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants