One Pipeline configuration for all projects. Is that possible?

Alternatively you could link a Project Pipeline Config to a folder via the descriptor {os}_path= parameter.
In this way you can link multiple project pipeline configs to just 1 folder.

An example:

git repo: my-distributed-pipeline-config

Primary folder on disk: P:/pipeline/shotgrid/my-distributed-pipeline-config-main-branch
(This is always a git pull of the master/main branch)
Project A, B and C all have the following pipeline configs:

Name: Primary
Plugin IDs: basic.*
Descriptor: sgtk:descriptor:path?windows_path=G:\Pipeline\Shotgrid\my-distributed-pipeline-config-main-branch

Name: Dev
Plugin IDs: basic.*
Descriptor: sgtk:descriptor:path?windows_path=G:\Pipeline\Shotgrid\my-distributed-pipeline-config-dev-branch
(This folder has a checkout of the dev branch on our git repo

Project A, B and C all load exactly the same pipeline.
If we want to do dev work we can load the Dev pipeline config on any of those projects and do our coding without braking stuff for others.
Once we are done we can push the changes to the main branch and do a git pull on the main folder.

In similar but more cmplex fashion you can use one git repo and stash your project specific changes in branches and point to those for each project.

Alternatively to that you could set an env variable in tank_init core hook which reads teh TANK_NAME and sets that as env variable, then you can include yaml files in the config with a env variable pointing to ${TANK_NAME} which then loads the correct yaml file depening on the project you are loading.

There you go, various ways to go about this.
Read up on more here:

1 Like