-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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
add module build visual diffs #32865
Conversation
Hey @rsimha! These files were changed:
Hey @danielrozenberg! These files were changed:
|
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.
I think a more maintainable way to do this is to make the job script visual-diff-tests.js
take a command line arg, and parametrize the job definition in config.yml
.
#32808 has an example of how to do it |
a37c730
to
9bf1029
Compare
9bf1029
to
b2908fb
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.
PR is looking great! Just a few comments below.
Since both jobs use the same Percy write-only token, they'll both end up in the same project, and Percy will only report one as a status to GitHub - whichever of the two ends later would override the earlier. Two possible solutions to this are:
I am very slightly leaning towards option #1, but don't really care either way. @rsimha can you think of how to pass the obfuscated token to the PR jobs? |
Oooh, excellent point, and good catch! TBH, after looking at the build logs on CircleCI and on Percy, I am leaning hard towards option 2. Here is my rationale:
WDYT @erwinmombay @danielrozenberg? Maybe a little extra trouble up front to get this to work, but worth it in the end? |
Again, no strong feelings either way. The overhead having two tokens/projects isn't that serious though, and we already discussed having separate projects for Chrome and for Firefox once Puppeteer fully supports the latter |
Okay, in that case, I'll lower my hard preference to a mild preference, and let @erwinmombay chime in since he's going to be the primary user of the Percy builds. 😃 Re: adding new tokens to our CircleCI project, it's no trouble, and I can help do it. 👍 |
@rsimha i think i would prefer option 2, just because seeing the results in a single page seems ideal |
08951f1
to
101cffc
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.
Getting closer! A few more comments below, and two critical changes. (Right now, the PR is neither downloading ESM binaries nor serving them during testing 😃)
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.
A few more comments that I think will simplify the code.
build-system/tasks/serve.js
Outdated
'new_server' in serverOptions ? serverOptions.new_server : argv.new_server | ||
) { | ||
try { | ||
buildNewServer(); |
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.
I see that in #30681, you added a call to buildNewServer()
to integration.js
. I think that change should be reverted because the server startup logic should entirely live in server.js
. Other tasks should trust the server to start itself correctly. Can we clean that up too?
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.
agree with the statement, but buildNewServer
isnt really start up logic and more compile logic. the code essentially isnt there (since its in typescript) before we make this call. buildNewServer
i believe should be done before the task, i just placed it there since its the latest we can call it to make "lazy"
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.
do you think it would be imperative i make this change here, or can i follow up on a separate PR? I am working on it already but i wasn't sure if i could clean separate the issue out in another PR
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.
#32891 makes this change and cleans up integration.js
. Once reviewed and merged, we shouldn't need any of these changes.
e5ce46a
to
80d8505
Compare
9530c9b
to
56540ab
Compare
timedExecOrDie('gulp visual-diff --nobuild --esm'); | ||
timedExecOrDie('gulp visual-diff --nobuild'); | ||
} else { | ||
timedExecOrDie('gulp visual-diff --empty --esm'); | ||
timedExecOrDie('gulp visual-diff --empty'); |
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.
So... this still generates two separate builds and has Percy report the 2nd one
Basically you have to loop through both module and nomodule gulp serve
inside the visual-diff/index.js job - everything needs to run from when launchPercyAgent()
is called and finished before exitPercyAgent_()
- this is what starts and finalizes a build on Percy
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.
got it. ill make the change
56540ab
to
ba3b93c
Compare
ba3b93c
to
9d57a48
Compare
Co-authored-by: Raghu Simha <[email protected]>
…tml transformation
9d57a48
to
ec361e5
Compare
This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 7 days if no further activity occurs. Thank you for your contributions. |
add a module build visual diff job using the
gulp serve --new_server
task which does a transform of the documents