i2mint / isee

Python continuous integration (CI) support tools.
https://i2mint.github.io/isee/
MIT License
1 stars 0 forks source link

Migrate to using reusable CI action maintained in isee and imported in all other repos #19

Open andeaseme opened 1 year ago

andeaseme commented 1 year ago

All repos contain their own .github/workflows/ci.yml with full step-by-step instructions. They all do the exact same thing. The problem with this becomes apparent when updating the CI steps. All repos will need to be updated individually.

The solution is to maintain the CI github action in isee repo and have the other repos use the same CI script directly from the isee repo.

An example of this is in epythet publishing github pages. i2mint/epythet/actions/publish-github-pages contains the step-by-step instructions. i2mint/epythet/.github/workflows/publish-docs.yml triggers the action when "Continuous Integration" workflow is completed. i2mint/meshed also has the workflow trigger i2mint/meshed/.github/workflows/publish-docs.yml which uses i2mint/epythet/actions/publish-github-pages

This task is a follow up to https://github.com/i2mint/epythet/issues/12

thorwhalen commented 1 year ago

@valentin-feron, what are your thoughts about this approach? And if we roll this out on all our repos:

(1) how do we do so in such a way as to not overwrite particulars of each repo (the template should be considered as the base convention but we should be able to keep specific configs on top of that)

(2) should we keep the template(s) in isee or somewhere else?

andeaseme commented 1 year ago

(1) how do we do so in such a way as to not overwrite particulars of each repo (the template should be considered as the base convention but we should be able to keep specific configs on top of that)

Particulars can be done as inputs to the action as seen in i2mint/epythet/actions/publish-github-pages. You can use the defaults or your own values using with block.

      - uses: i2mint/epythet/actions/publish-github-pages@master
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
andeaseme commented 1 year ago

We decided after a out last discussion to move Publishing GitHub Pages from a separate workflow to a job within ci.yml.
See audiostream2py ci.yml for example.

We still need to create a CI actions for validation and publish to pypi before applying to all repos.