-
-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Reduce CI verbosity and complexity #4735
Conversation
👍 on auto-canceling builds. I thought we were already doing that, in fact. |
I flipped the switch. |
0fe5491
to
6920d51
Compare
I actually reverted to using the non container builds and re-enabled
deleting yarn. Container builds might run a bit slower anyway so I think
that's fine. Issue description is up to date, but my comment you quoted
isn't.
…On Thu, Jun 28, 2018, 5:37 PM Jason Grout ***@***.***> wrote:
Ah, it's too bad we can't remove the rm command for yarn. I wonder if
there is some creative way to make that command unavailable without
requiring sudo. The non sudo builds start up quicker.
I suppose we could put something in the path to mask the system yarn that
would throw an error. The point is that we want to make sure that the
system yarn doesn't work, so we are testing that we are actually using our
yarn, and work on a system without a working yarn.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#4735 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABIZTIiIUdka9pA5H3RpwcgTLFGVkXxCks5uBUyVgaJpZM4Upx_u>
.
|
The /**
* A namespace for private data.
*/
var Private;
(function (Private) {
Private.manager = new services_1.ServiceManager();
Private.textFactory = new docregistry_1.TextModelFactory();
Private.notebookFactory = new notebook_1.NotebookModelFactory({});
var JSONRenderer = /** @class */ (function (_super) {
__extends(JSONRenderer, _super);
function JSONRenderer() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.mimeType = 'text/html';
return _this;
}
JSONRenderer.prototype.renderModel = function (model) {
var source = model.data['application/json'];
model.setData({ data: { 'text/html': json2html(source) } });
return _super.prototype.renderModel.call(this, model);
};
return JSONRenderer;
}(rendermime_1.RenderedHTML));
var jsonRendererFactory = {
mimeTypes: ['application/json'],
safe: true,
createRenderer: function (options) {
debugger;
return new JSONRenderer(options);
}
};
Private.rendermime = new rendermime_1.RenderMimeRegistry({
initialFactories: rendermime_1.standardRendererFactories
});
Private.rendermime.addFactory(jsonRendererFactory, 10);
})(Private || (Private = {})); This file is messed up because /**
* A namespace for private data.
*/
var Private;
(function (Private) {
Private.manager = new services_1.ServiceManager();
Private.textFactory = new docregistry_1.TextModelFactory();
Private.notebookFactory = new notebook_1.NotebookModelFactory({});
class JSONRenderer extends rendermime_1.RenderedHTML {
constructor() {
super(...arguments);
this.mimeType = 'text/html';
}
renderModel(model) {
let source = model.data['application/json'];
model.setData({ data: { 'text/html': json2html(source) } });
return super.renderModel(model);
}
}
const jsonRendererFactory = {
mimeTypes: ['application/json'],
safe: true,
createRenderer(options) {
debugger;
return new JSONRenderer(options);
}
};
Private.rendermime = new rendermime_1.RenderMimeRegistry({
initialFactories: rendermime_1.standardRendererFactories
});
Private.rendermime.addFactory(jsonRendererFactory, 10);
})(Private || (Private = {})); Which is more reasonable. The errors might be with with combing it with the thread-loader (webpack-contrib/cache-loader#20). I am going to remove it here and see if the tests still run in an acceptable amount of time. |
@jasongrout This is ready for review again. |
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.
Looks great, just one comment
@@ -141,7 +141,7 @@ describe('@jupyterlab/notebook', () => { | |||
expect(called).to.be(true); | |||
}); | |||
|
|||
it('should emit a `contentChanged` signal upon cell move', () => { | |||
it.skip('should emit a `contentChanged` signal upon cell move', () => { |
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.
Intentional?
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.
Nope, not intentional. Good catch. Thank you for taking a look over this.
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 for working on this @saulshanabrook! This sort of plumbing is both crucial and frustrating.
Cleanup from #4735 which removes need for selenium.
The goal with this PR is to make CI faster, easier to debug, and less flaky.
TODO
Results
Changes
set -ex; set -o pipefail
, instead ofset -x
.**-e
will make sure the test exits with a failure code if any of the commands do.-o pipefile
will make the test exit with a failure code if any piped command does.-q
to pip installRevert karma timeouts to default. I am finding that longer timeouts/more retries just make it harder to debug.Future Improvements
There is still many ways to improve these metrics, but I think this is a good time to stop where we are at. Future work could include: