Open GrimTheReaper opened 8 years ago
I have a Jenkins that could be provided if need be. One potential issue with this is that if a commit breaks something it would get pushed anyway. It might be better to take advantage of Github Releases (have a script that takes the latest release and pushes it to the store)
@Willsr71 that would work as well. But the point of a CI is to also test to make sure that a commit doesn't break anything. I just want to make sure going forward we have a deployment path that works well.
Jenkins can do that as well, but the thing is there is no easy way to automatically test a chrome extension (that I can think of anyway).
There are many different things to test for though. Also, no offense but it would be better to use a CI that is owner neutral (such as CircleCI or TravisCI, or a Jenkins owned by the repository owner) so that security and file integrity can be assured.
None taken. I'm just more of a Java person and Maven has integrated testing wheras with JavaScript there is no easy way to automagically test things on websites.
Yeah, I'm with you there. :stuck_out_tongue: But there still are things to test, such as syntax.
Indeed. One thing we could do is create a separate script that runs various functions in the extension and checks for expected output but that would still only go so far.
I actually feel a CI would go overboard. Or at least be something that should be considered later. As this is also meant as a learning experience. Might be a bit rambly here.
I am currently writing up a Pull request to organize files into folders and add Gulp as a taskrunner to created minified files and a .ZIP for the maintainer to upload to the store.
And actually can you push to the Chrome store through some sort of API? Would look into this but am currently in China.
I actually like @Willsr71 idea of using releases here on GitHub (haven't worked much with them) but that also seems to be an improvement on keeping a history.
@HoverBaum In answer to the webstore API question, https://developer.chrome.com/webstore/using_webstore_api
For the releases the only thing that needs to be done is a tag for each version of the repository that would be considered a release and then when a release is created github will automatically include a zip of the repository from the tag. In addition you can provide descriptions and the zip file created by gulp, etc.
I feel like we shouldn't think about a Continuous Integration (CI) for now. As that would require at least unit testing the entire code.
It seems to me that manual releases will be best for now. Maybe tags on GitHub.
So, I figured that code pushed to the repository won't automagically appear in the chrome web store or appear in an extension update, which leads me to guess that your current plan is to manually push the different versions? If this is the case, I recommend setting up either a CircleCI or a TravisCI automation (this would also be good for enforcing test for any PR) and possibly have it push to the chrome web store if a certain branch is updated. For instance, we could have a "prod" branch that when code is pushed signals an update. Also, since this is an open source project it should be free for us to do this.