Petr, > you cannot run new suite added in branch because it just won't be visible from UI
That's unfortunate. However, a more important scenario is "make changes to the existing project in a branch", which is supported, as I understand [1] [1] https://www.jetbrains.com/help/teamcity/storing-project-settings-in-version-control.html#Defining+Settings+to+Apply+to+Builds On Fri, Dec 17, 2021 at 2:19 PM Petr Ivanov <mr.wei...@gmail.com> wrote: > TeamCity DSL just does not work as you wish it should. > > > Changes from branches are not visible: you cannot run new suite added in > branch because it just won't be visible from UI because project UI is > rendered from default branch only), > and at least snapshot dependencies are taken from default branch only: > even if you will add dependency on already visible Run All configuration, > it will be ignored. > > > Also about storing in already existing apache/ignite repository — that > will break the model about current separation on ignite and ignite-3, > ignite-extensions and so-on. > As we have different repositories for different parts of our project and > TeamCity unites them all — repository should be separate. > And when JB will fix the branches issues — we still will be able to use it > with creating branches with the same name on both project and TC repository. > > > On 17 Dec 2021, at 14:06, Pavel Tupitsyn <ptupit...@apache.org> wrote: > > > > Witaliy, > > > >> repository is created > >> only in the master branch > > > > I strongly suggest avoiding a separate repository for project settings. > > Let's store them in https://github.com/apache/ignite > > > > *1. We should be able to test code changes together with CI/CD changes.* > > *2. We should be able to have different project settings in different > > branches.* > > > > For example, I may remove or rename a module in ignite/master branch and > > update TC project accordingly, > > while it continues to work as before in ignite-2.12 branch where we > prepare > > the release with older code. > > > > This is super important and this is how most other projects do it (from > my > > experience). > > > > > > > > On Fri, Dec 17, 2021 at 11:12 AM Виталий Осилов < > osipov.wita...@gmail.com> > > wrote: > > > >> Dear Ignite Community! > >> > >> I propose for discussion the conception of using two TeamCity servers > with > >> a roadmap. > >> https://ci.ignite.apache.org/ > >> https://ci2.ignite.apache.org/ > >> > >> Storing project settings. > >> Servers synchronize configurations between themselves using the version > >> control-storing DSL (repository at https://github.com/apache). TeamCity > >> allows to store the settings in the DSL based on the kotlin language. > >> You can read more about the version control-storing DSL here > >> > >> > https://www.jetbrains.com/help/teamcity/2021.2/kotlin-dsl.html#Getting+Started+with+Kotlin+DSL > >> This scheme will allow to maintain a single configuration for both TC > and > >> update configuration after a code review. > >> Changes in the suite should be made only in the master branch of the > stored > >> configuration. WebUI should be disabled on both TC. > >> The code-modified PR should be tested for compatibility before approval. > >> > >> Configuring authentication. > >> It is proposed to switch sign in to TeamCity with using GitHub.com > account > >> ( > >> > >> > https://www.jetbrains.com/help/teamcity/configuring-authentication-settings.html#GitHub.com > >> ) > >> and restriction of access for the organization (https : // > >> > >> > docs.github.com/en/organizations/collaborating-with-groups-in-organizations/about-organizations > >> .) > >> User rights are changed on each server by request in Jira. > >> > >> Storing security credentials. > >> All credentials are stored on each server in the file > "<TEAMCITY_DATA_DIR> > >> / config / projects / <PROJECT_ID> /pluginData/secure/credentials.json". > >> That is why it is supposed to configure the synchronization of this file > >> between two servers. > >> > >> Maintenance. > >> All change requests of server's maintenance should be created in Jira > >> https://issues.apache.org/jira/projects/IGNITE > >> <https://issues.apache.org/jira/projects/IGNITE/summary> > >> Responsible for the servers and agents - TC1 Petr Ivanov and TC2 Vitaly > >> Osipov. They are responsible for the health of the servers (backups, > >> updates, agents, etc.) > >> Both TC servers must be updated sequentially with a minimum time > interval > >> by request in Jira. > >> --- > >> At the first stage, it is required to synchronize the differences in > >> configurations. The configuration from TC1 is uploaded to TC2. > >> If changes are required in this configuration, tasks are created in > Jira to > >> change settings in TC1, then new configuration is re-uploaded to TC2. > >> Repository is created at https://github.com/apache. Tech-user is > created > >> for connecting to this repository. Tech-user should have RW access in > the > >> master branch. > >> Checking TC2 functionality for several weeks. > >> Stage 2 - The option of "synchronization of the project settings with > the > >> version control system" must be allowed for the root-project on TC1 and > >> TC2. > >> The option "*Allow editing project settings via UI" must be allowed on > TC1 > >> and disabled on TC2.* > >> Checking TC2 functionality for several weeks. > >> Stage 3 - Switch sign in to TeamCity with using GitHub with linking TC > >> users to their accounts on the github.com. > >> Stage 4 - Configuring synchronization of secret files > >> "secure/credentials.json". Synchronization is one-way, so security creds > >> can only be made on the TC1 server. Configuring upload and download > files > >> if they change. > >> Stage 5 - Setting up of checking PR before approval. > >> Stage 6 - Disabling the ability to edit configurations via WebUI on TC1 > >> > >