-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Support for multi-repo projects #7785
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.yml
as 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.yml
contains 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