nextstrain / .github

8 stars 11 forks source link

Standardize pathogen-repo-ci use across pathogen repos #84

Closed joverlee521 closed 1 month ago

joverlee521 commented 3 months ago

Ideas here came out of discussion with @tsibley in our 1:1 regarding https://github.com/nextstrain/.github/pull/62#issuecomment-2105402378. This would supersede #63 + #62.

Proposal

With the standardization of pathogen repos following the pathogen-repo-guide, we can now enforce the standardized use of the pathogen-repo-ci workflow.

In order to use the centralized pathogen-repo-ci, a pathogen repo will need to meet two requirements.

  1. follow a strict repo organization (currently required to have a phylogenetic subdirectory)
  2. use a standard mechanism for specifying the CI build, e.g. use a standard CI config that can be specified with

    nextstrain build phylogenetic --configfiles build-configs/ci/config.yaml

This would simplify each pathogen repo's CI workflow to:

name: CI

on:
  - push
  - pull_request

jobs:
  ci:
    uses: nextstrain/.github/.github/workflows/pathogen-repo-ci.yaml@master

Then the docker-base/conda-base CIs can be simplified to just matrix of pathogen repos instead of needing to pass in additional build args.

Concrete steps

victorlin commented 3 months ago

I'm a bit out of the loop here. What's the difference between mpox's CI (which uses pathogen-repo-build) and avian-flu's CI (which uses pathogen-repo-ci)? Can avian-flu use pathogen-repo-build? Or is mpox's use of pathogen-repo-build considered temporary and will be replaced during the 3rd task here?

joverlee521 commented 3 months ago

Or is mpox's use of pathogen-repo-build considered temporary and will be replaced during the 3rd task here?

Yup, the use of the pathogen-repo-build in CI is considered a temporary change (if ~6 months is considered temporary 😅). The plan would be to switch all pathogen GitHub Action CI workflows back to pathogen-repo-ci.

genehack commented 3 months ago

Related/precursor work: https://github.com/nextstrain/.github/issues/89