- 
                Notifications
    
You must be signed in to change notification settings  - Fork 1.3k
 
Support for multi-repo projects #7785
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
Conversation
| 
           @svenefftinge: Adding the "do-not-merge/release-note-label-needed" label because no release-note block was detected, please follow our release note process to remove it. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.  | 
    
          Codecov Report
 @@            Coverage Diff             @@
##             main    #7785      +/-   ##
==========================================
- Coverage   12.31%   11.17%   -1.14%     
==========================================
  Files          20       18       -2     
  Lines        1161      993     -168     
==========================================
- Hits          143      111      -32     
+ Misses       1014      880     -134     
+ Partials        4        2       -2     
 Flags with carried forward coverage won't be shown. Click here to find out more. 
 Continue to review full report at Codecov. 
  | 
    
ebab111    to
    8b36266      
    Compare
  
    739ab95    to
    711a613      
    Compare
  
    | 
           [APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Associated issue: #7608 The full list of commands accepted by this bot can be found here. 
Needs approval from an approver in each of these files:
 
      
 Approvers can indicate their approval by writing   | 
    
| 
           /werft run 👍 started the job as gitpod-build-se-multi-repo.9  | 
    
089704c    to
    6a47917      
    Compare
  
    4a05700    to
    75f6232      
    Compare
  
    | 
           /werft run with-clean-slate-deployment 👍 started the job as gitpod-build-se-multi-repo.17  | 
    
872e82a    to
    04766eb      
    Compare
  
    There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
b9e17e3    to
    8fd641d      
    Compare
  
    8fd641d    to
    e3e6b02      
    Compare
  
    | 
           /werft run 👍 started the job as gitpod-build-se-multi-repo.43  | 
    
| 
           /werft run clean-slate-deployment 👍 started the job as gitpod-build-se-multi-repo.44  | 
    
| 
           /werft run with-clean-slate-deployment 👍 started the job as gitpod-build-se-multi-repo.45  | 
    
e3e6b02    to
    36ee357      
    Compare
  
    | 
           Tested prebuilds and projects with a 2-repo setup as per draft docs 
 project list - note backend branch name in frontend project tileall prebuilds on main repo projectno prebuilds on sub-repo projectmatching branches | 
    
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM based on testing in dev environment.
| 
               | 
          ||
| public async up(queryRunner: QueryRunner): Promise<void> { | ||
| if (!(await columnExists(queryRunner, "d_b_prebuilt_workspace_updatable", "commitSHA"))) { | ||
| await queryRunner.query("ALTER TABLE d_b_prebuilt_workspace_updatable ADD COLUMN commitSHA varchar(255) NOT NULL"); | 
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What happens if you add a NOT NULL column to an existing table, without a default value? 🤔
Maybe this should be NULL, since commitSHA can be undefined in DBPrebuiltWorkspaceUpdatable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
addressed in #8711




This PR introduces the possibility to describe dev environments that span multiple repositories. Such a project consists of a main repository, that contains the configuration for the project's dev environment using the
.gitpod.ymlas usual. The additional repositories don't have a configuration on their own but all point to the main repository's configuration. Here's a loom video showing this in action.The pointing is done bi-directionally in the repositories
.gitpod.yml.The main repository's
.gitpod.ymlcontains a list ofadditionalRepositories.How to test (example contexts)
A team with projects is set up: Join the team
fixes #7608
Things that knowingly are not perfect yet
Multi-repo projects don't have a great representation in the UI (dashboard) yet. One still has to install webhooks/GitHub App on all participating repositories to have the webhook trigger pushevents. Webhooks coming from subrepos are treated as events for the project that contains the main configuration. That's correct but i should be visually clearer, that the project spans multiple repos and also the detail information on prebuilds should list all participating commits.
The idea is to ship a first preview version to get more feedback from users and complete the feature based on what we learn from that.
Documentation
TODO: Add Draft PR for Docs
Release Notes