{"action":"created","issue":{"url":"https://api.github.com/repos/nodejs/io.js/issues/1938","labels_url":"https://api.github.com/repos/nodejs/io.js/issues/1938/labels{/name}","comments_url":"https://api.github.com/repos/nodejs/io.js/issues/1938/comments","events_url":"https://api.github.com/repos/nodejs/io.js/issues/1938/events","html_url":"https://github.com/nodejs/io.js/pull/1938","id":86973027,"number":1938,"title":"build: update build targets for io.js","user":{"login":"rvagg","id":495647,"avatar_url":"https://avatars.githubusercontent.com/u/495647?v=3","gravatar_id":"","url":"https://api.github.com/users/rvagg","html_url":"https://github.com/rvagg","followers_url":"https://api.github.com/users/rvagg/followers","following_url":"https://api.github.com/users/rvagg/following{/other_user}","gists_url":"https://api.github.com/users/rvagg/gists{/gist_id}","starred_url":"https://api.github.com/users/rvagg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rvagg/subscriptions","organizations_url":"https://api.github.com/users/rvagg/orgs","repos_url":"https://api.github.com/users/rvagg/repos","events_url":"https://api.github.com/users/rvagg/events{/privacy}","received_events_url":"https://api.github.com/users/rvagg/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nodejs/io.js/labels/build","name":"build","color":"eb6420"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":10,"created_at":"2015-06-10T13:34:40Z","updated_at":"2015-06-23T10:34:00Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/nodejs/io.js/pulls/1938","html_url":"https://github.com/nodejs/io.js/pull/1938","diff_url":"https://github.com/nodejs/io.js/pull/1938.diff","patch_url":"https://github.com/nodejs/io.js/pull/1938.patch"},"body":"I decided to tackle some technical debt in the process of enabling RC builds for 3.0.0, the other option was to just build up more.\r\n\r\nThis PR extracts almost all of the release logic from Jenkins and puts it back in the Makefile where it belongs. It's not complete _yet_ because I still need to fix vcbuild.bat, but I'll get that done ASAP so we can move forward. I'm putting this up now so the Makefile portion can get a review.\r\n\r\nThe Makefile is now aware of `nightly`, `next-nightly` and `rc` builds, this is specified with the `NIGHTLY` parameter. The nightly builds also need `COMMIT` and `DATESTRING` parameters to form the full tag. The rc builds need an `RC` parameter which will just be an number for the given RC. The version string of RC builds will look like `v3.0.0-rc1`.\r\n\r\nThe packaging and uploading logic has been put back in to the Makefile, we were not using a lot of the existing stuff and had instead taken the shortcut of putting it all in Jenkins (when I say \"we\" I actually mean \"I\"). Now we're even using the code signing stuff in there. The OSX package definitions have been updated and I even formatted the XML file because I wanted to do some manual editing in there.\r\n\r\nI've also fixed a long-standing bug, https://github.com/nodejs/build/issues/45, which comes from the fact that in io.js we opted to go fully with `x86` for 32-bit instead of the `ia32` used by joyent/node. Unfortunately for the Linux tarballs this was done by renaming the file and the internal directory structure still referred to `ia32` so I have now fully banished it from the build process (it's still used by `configure` internally though).\r\n\r\nI also got rid of the pkgsrc stuff for now, that can go back in later.\r\n\r\nI have set up a new Jenkins job to run this: https://jenkins-iojs.nodesource.com/job/iojs+nightly2/, it has an additional `rc` option in the \"buildtype\" parameter and a new \"rc\" parameter.\r\n\r\nFor tarballs on Linux (including ARM) and OSX it's simply doing this now:\r\n\r\n```sh\r\nmake -j$JOBS binary-upload DESTCPU=$DESTCPU ARCH=$ARCH NIGHTLY=$buildtype DATESTRING=$datestring COMMIT=$commit RC=$rc\r\n```\r\n\r\nFor .pkg files on OSX it's doing this:\r\n\r\n```sh\r\nCODESIGN_CERT=Developer ID Application: Node Source, LLC\r\nPRODUCTSIGN_CERT=Developer ID Installer: Node Source, LLC\r\nPACKAGEMAKER=~/PackageMaker.app/Contents/MacOS/PackageMaker\r\n\r\nmake -j$JOBS pkg-upload DESTCPU=$DESTCPU ARCH=$ARCH NIGHTLY=$buildtype DATESTRING=$datestring COMMIT=$commit RC=$rc\r\n```\r\n\r\nFor the slave that makes the source tarball and the doc/ directory it does this:\r\n\r\n```sh\r\nmake -j$JOBS tar-upload DESTCPU=$DESTCPU ARCH=$ARCH NIGHTLY=$buildtype DATESTRING=$datestring COMMIT=$commit RC=$rc\r\n\r\nmake -j$JOBS doc-upload DESTCPU=$DESTCPU ARCH=$ARCH NIGHTLY=$buildtype DATESTRING=$datestring COMMIT=$commit RC=$rc\r\n```\r\n\r\n_(The lower-case variables are injected by Jenkins from its build parameters.)_\r\n\r\nThese make targets do the whole lot from build to upload-to-staging. I've tested and tweaked each of the build types and am confident that this is working as it should, except for Windows which still has a bunch of Jenkins logic and is missing awareness of rc builds.\r\n\r\nStandard test run here: https://jenkins-iojs.nodesource.com/job/iojs+any-pr+multi/795/\r\n\r\nattn: @nodejs/build "},"comment":{"url":"https://api.github.com/repos/nodejs/io.js/issues/comments/114439172","html_url":"https://github.com/nodejs/io.js/pull/1938#issuecomment-114439172","issue_url":"https://api.github.com/repos/nodejs/io.js/issues/1938","id":114439172,"user":{"login":"rvagg","id":495647,"avatar_url":"https://avatars.githubusercontent.com/u/495647?v=3","gravatar_id":"","url":"https://api.github.com/users/rvagg","html_url":"https://github.com/rvagg","followers_url":"https://api.github.com/users/rvagg/followers","following_url":"https://api.github.com/users/rvagg/following{/other_user}","gists_url":"https://api.github.com/users/rvagg/gists{/gist_id}","starred_url":"https://api.github.com/users/rvagg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rvagg/subscriptions","organizations_url":"https://api.github.com/users/rvagg/orgs","repos_url":"https://api.github.com/users/rvagg/repos","events_url":"https://api.github.com/users/rvagg/events{/privacy}","received_events_url":"https://api.github.com/users/rvagg/received_events","type":"User","site_admin":false},"created_at":"2015-06-23T10:34:00Z","updated_at":"2015-06-23T10:34:00Z","body":"a bunch of changes and comments, PTAL @orangemocha "}}