{"action":"created","issue":{"url":"https://api.github.com/repos/dojo/dojo.io/issues/354","repository_url":"https://api.github.com/repos/dojo/dojo.io","labels_url":"https://api.github.com/repos/dojo/dojo.io/issues/354/labels{/name}","comments_url":"https://api.github.com/repos/dojo/dojo.io/issues/354/comments","events_url":"https://api.github.com/repos/dojo/dojo.io/issues/354/events","html_url":"https://github.com/dojo/dojo.io/issues/354","id":282553151,"number":354,"title":"Reduce number of tutorial rebuilds that CI performs","user":{"login":"vansimke","id":2693148,"avatar_url":"https://avatars2.githubusercontent.com/u/2693148?v=4","gravatar_id":"","url":"https://api.github.com/users/vansimke","html_url":"https://github.com/vansimke","followers_url":"https://api.github.com/users/vansimke/followers","following_url":"https://api.github.com/users/vansimke/following{/other_user}","gists_url":"https://api.github.com/users/vansimke/gists{/gist_id}","starred_url":"https://api.github.com/users/vansimke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vansimke/subscriptions","organizations_url":"https://api.github.com/users/vansimke/orgs","repos_url":"https://api.github.com/users/vansimke/repos","events_url":"https://api.github.com/users/vansimke/events{/privacy}","received_events_url":"https://api.github.com/users/vansimke/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"vansimke","id":2693148,"avatar_url":"https://avatars2.githubusercontent.com/u/2693148?v=4","gravatar_id":"","url":"https://api.github.com/users/vansimke","html_url":"https://github.com/vansimke","followers_url":"https://api.github.com/users/vansimke/followers","following_url":"https://api.github.com/users/vansimke/following{/other_user}","gists_url":"https://api.github.com/users/vansimke/gists{/gist_id}","starred_url":"https://api.github.com/users/vansimke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vansimke/subscriptions","organizations_url":"https://api.github.com/users/vansimke/orgs","repos_url":"https://api.github.com/users/vansimke/repos","events_url":"https://api.github.com/users/vansimke/events{/privacy}","received_events_url":"https://api.github.com/users/vansimke/received_events","type":"User","site_admin":false},"assignees":[{"login":"vansimke","id":2693148,"avatar_url":"https://avatars2.githubusercontent.com/u/2693148?v=4","gravatar_id":"","url":"https://api.github.com/users/vansimke","html_url":"https://github.com/vansimke","followers_url":"https://api.github.com/users/vansimke/followers","following_url":"https://api.github.com/users/vansimke/following{/other_user}","gists_url":"https://api.github.com/users/vansimke/gists{/gist_id}","starred_url":"https://api.github.com/users/vansimke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vansimke/subscriptions","organizations_url":"https://api.github.com/users/vansimke/orgs","repos_url":"https://api.github.com/users/vansimke/repos","events_url":"https://api.github.com/users/vansimke/events{/privacy}","received_events_url":"https://api.github.com/users/vansimke/received_events","type":"User","site_admin":false}],"milestone":null,"comments":0,"created_at":"2017-12-15T21:31:15Z","updated_at":"2017-12-15T21:41:19Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"When dojo.io is published, it currently verifies every tutorial demo by installing the dependencies and building them. This has the effect of making the deployment times very long and ties up multiple Travis build jobs while this work is done. With the coming of the web-editor (ref #93) this situation promises to get worse since the web-editor needs each tutorial have its dependencies installed (again) in order to export it in the format that the editor needs.\r\n\r\nThe build should be made more intelligent so that unchanged tutorial demos are not re-tested and exported."},"comment":{"url":"https://api.github.com/repos/dojo/dojo.io/issues/comments/352118779","html_url":"https://github.com/dojo/dojo.io/issues/354#issuecomment-352118779","issue_url":"https://api.github.com/repos/dojo/dojo.io/issues/354","id":352118779,"user":{"login":"vansimke","id":2693148,"avatar_url":"https://avatars2.githubusercontent.com/u/2693148?v=4","gravatar_id":"","url":"https://api.github.com/users/vansimke","html_url":"https://github.com/vansimke","followers_url":"https://api.github.com/users/vansimke/followers","following_url":"https://api.github.com/users/vansimke/following{/other_user}","gists_url":"https://api.github.com/users/vansimke/gists{/gist_id}","starred_url":"https://api.github.com/users/vansimke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vansimke/subscriptions","organizations_url":"https://api.github.com/users/vansimke/orgs","repos_url":"https://api.github.com/users/vansimke/repos","events_url":"https://api.github.com/users/vansimke/events{/privacy}","received_events_url":"https://api.github.com/users/vansimke/received_events","type":"User","site_admin":false},"created_at":"2017-12-15T21:41:19Z","updated_at":"2017-12-15T21:41:19Z","author_association":"CONTRIBUTOR","body":"One approach that could be used is to create a hash for each demo project and store it every time a demo is processed. A task could then be added to `grunt ci` that would compare each demo's current has to the previously calculated one. A demo would be processed only if the hash changes.\r\n\r\nI see two options on how to do this:\r\n1) Have Travis track and update the hashes or,\r\n2) Give developers the ability to update the process the demos and update the hashes for ones that change.\r\n\r\nWhile option (1) would be preferable from an automation standpoint, it seems that it would necessitate allowing Travis to update the `master` branch in order to update the hashes for the processed demos. I'm not very comfortable with this. The would not be required if Travis had some other way of storing this kind of metadata, but I'm not aware of one. This should be researched and, if one is available, this option would be my recommended path forward.\r\n\r\nThe second option requires contributors to remember to run the update task and, therefore, will be prone to human error. The impact of failing to do this would be small, however, since Travis would just conduct unnecessary processing. While this does waste time, it does not introduce the possibility of publishing the site with out of date artifacts. This option should be pursued if no acceptable way is found to fully automate the verification and update process."}}
{"actor":{"display_login":"vansimke"}}