-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Implement project configurator #4631
Conversation
/werft run 👍 started the job as gitpod-build-jx-configure-project.9 |
96138a6
to
9dc9489
Compare
2c0fad9
to
6e3f86d
Compare
566b26b
to
d1d91c8
Compare
/werft with-clean-slate-deployment 👎 unknown command: with-clean-slate-deployment |
/werft help 👍 You can interact with werft using:
|
/werft run with-clean-slate-deployment 👍 started the job as gitpod-build-jx-configure-project.32 |
7952900
to
653d938
Compare
8601021
to
c669905
Compare
/werft run from-scratch 👍 started the job as gitpod-build-jx-configure-project.51 |
e12cd02
to
88c945f
Compare
disposables.push(watchHeadlessLogs(service.server, info.latestInstance.id, chunk => { | ||
logsEmitter.emit('logs', chunk); | ||
}, async () => workspaceInstance?.status.phase === 'stopped')); |
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.
@geropl Please double-check here: Is this really what the checkIfDone
function is supposed to do?
(I'm not sure yet how watchHeadlessLogs
works exactly.)
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.
@jankeromnes Yes, if workspaceInstance
is updated properly (I assume it is).
Ideally we'd have a API for "getPrebuildState" so we don't have to interpret this from the underlying instance, but the result should be the same.
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.
Thanks! (In the future, I think it would be cool if watchHeadlessLogs
can figure out on its own whenever the job it watches is done or not 😇)
</>; | ||
} | ||
|
||
export function watchHeadlessLogs(server: GitpodServer, instanceId: string, onLog: (chunk: string) => void, checkIsDone: () => Promise<boolean>): DisposableCollection { |
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.
Note: I'm moving this function out of WorkspaceLogs.tsx
and into the new component PrebuildLogs.tsx
, because it is imported eagerly in various places.
However, we don't want to import WorkspaceLogs.tsx
eagerly, because that file imports all of Xterm.js (you'll notice that WorkspaceLogs
itself is always imported lazily -- same for MonacoEditor
now).
88c945f
to
41e076d
Compare
41e076d
to
4055c50
Compare
Alright, I think this could be merged as is. @svenefftinge and @AlexTugarev could you please take another look? How to test
Note: There is no GitHub App/Integration for this test environment. The Project Configurator is setup as the last step in the wizard, but I couldn't test the entire flow yet (I only tested the configurator specifically). Follow-upsA few review discussions are still open. I think it's best to address them in follow-up issues & Pull Requests, in order to get this first pass merged sooner and spend more time iterating on the "wizard" flow holistically. Still, please do feel free to share thoughts & feedback, and anything bigger than a quick fix before merging will become a follow-up issue. |
/werft run 👍 started the job as gitpod-build-jx-configure-project.56 |
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.
There seems to be an issue with the prebuild logs. They logs stay empty for me and I could only see them after reloading.
Try with: https://jx-configure-project.staging.gitpod-dev.com/#prebuild/https://github.com/gitpod-io/spring-petclinic
Could it be because of the changes in the PR?
@@ -48,7 +48,7 @@ export default function Menu() { | |||
})(); | |||
|
|||
const userFullName = user?.fullName || user?.name || '...'; | |||
const showTeamsUI = user?.rolesOrPermissions?.includes('teams-and-projects') || window.location.hostname.endsWith('gitpod-dev.com') || window.location.hostname.endsWith('gitpod-io-dev.com'); | |||
const showTeamsUI = user?.rolesOrPermissions?.includes('teams-and-projects'); |
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.
🙏
Hmm, I also no longer see prebuild logs therer, in the "manual prefix" page or in the "Prebuild in Progress" page. Also, I got this error twice in the console:
Then the prebuild was eventually successfully finished, and started in a new workspace, although I didn't get any logs. I don't know if this can be related to this PR, or if this is a problem with dev-staging (I'm under the impression that headless logs often simply don't work in dev-staging, while they do work better in staging & production). Are other dev-staging deployments affected as well? EDIT: Tested two other dev-staging deployments, where it seems to work better. Will double-check my changes here. |
LGTM label has been added. Git tree hash: 2f6484b357b0c46d8754a426ba813d1eb6df81c5
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: jankeromnes, svenefftinge The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/unhold |
/woof |
In response to this:
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. |
Initial pass to fix #4648
Depends on & contains #4846
What it does:
config
(text) field tod_b_project
, so that Projects can have a custom.gitpod.yml
content.gitpod.yml
(from the Project DB), the initializer also places the uncomitted.gitpod.yml
into the workspace (to encourage repo-based configs)How to test:
d_b_project
, or we set up a GitHub App integration -- @AlexTugarev could you help with the latter?).gitpod.yml
(e.g. based on one of the presets) and then test it / iterate on it in a quick loop (with the build output on the right)The UX of this is still rough, but the goal is to add this final step rather soon, and then iterate on the entire Add Project flow.