diff --git a/build/tasks/create-installer.coffee b/build/tasks/create-installer.coffee index fa6152f40..dd9baff77 100644 --- a/build/tasks/create-installer.coffee +++ b/build/tasks/create-installer.coffee @@ -12,6 +12,8 @@ module.exports = (grunt) -> buildDir = grunt.config.get('atom.buildDir') atomDir = path.join(buildDir, 'Atom') + releasesDir = path.join(buildDir, 'Releases') + atomGitHubToken = process.env.ATOM_ACCESS_TOKEN packageInfo = grunt.file.readJSON(path.join(atomDir, 'resources', 'app', 'package.json')) inputTemplate = grunt.file.read(path.join('build', 'windows', 'atom.nuspec.erb')) @@ -22,20 +24,22 @@ module.exports = (grunt) -> targetNuspecPath = path.join(buildDir, 'atom.nuspec') grunt.file.write(targetNuspecPath, _.template(inputTemplate, packageInfo)) - cmd = 'build/windows/nuget.exe' - args = ['pack', targetNuspecPath, '-BasePath', atomDir, '-OutputDirectory', buildDir] + # We use the previous releases to build deltas for the current release, + # sync down the existing releases directory by rolling through GitHub releases + cmd = 'build/windows/SyncGitHubReleases.exe' + args = ['-r', releasesDir, '-u', 'https://github.com/atom/atom', '-t', atomGitHubToken] spawn {cmd, args}, (error, result, code) -> return done(error) if error? - pkgs = pkg for pkg in fs.readdirSync(buildDir) when path.extname(pkg) is '.nupkg' + cmd = 'build/windows/nuget.exe' + args = ['pack', targetNuspecPath, '-BasePath', atomDir, '-OutputDirectory', buildDir] - releasesDir = path.join(buildDir, 'Releases') + spawn {cmd, args}, (error, result, code) -> + return done(error) if error? - # NB: Gonna clear Releases for now, in the future we need to pull down - # the existing version - rm(releasesDir) + pkgs = pkg for pkg in fs.readdirSync(buildDir) when path.extname(pkg) is '.nupkg' - cmd = 'build/windows/update.com' - args = ['--releasify', path.join(buildDir, pkgs), '-r', releasesDir, '-g', 'build/windows/install-spinner.gif'] - spawn {cmd, args}, (error, result, code) -> done(error) + cmd = 'build/windows/update.com' + args = ['--releasify', path.join(buildDir, pkgs), '-r', releasesDir, '-g', 'build/windows/install-spinner.gif'] + spawn {cmd, args}, (error, result, code) -> done(error) diff --git a/build/windows/Setup.exe b/build/windows/Setup.exe index 73603d2d2..2a60e4b73 100644 Binary files a/build/windows/Setup.exe and b/build/windows/Setup.exe differ diff --git a/build/windows/Setup.pdb b/build/windows/Setup.pdb index 2568e268e..ae786355d 100644 Binary files a/build/windows/Setup.pdb and b/build/windows/Setup.pdb differ diff --git a/build/windows/SyncGitHubReleases.exe b/build/windows/SyncGitHubReleases.exe new file mode 100644 index 000000000..d84fe66e1 Binary files /dev/null and b/build/windows/SyncGitHubReleases.exe differ diff --git a/build/windows/SyncGitHubReleases.exe.pdb b/build/windows/SyncGitHubReleases.exe.pdb new file mode 100644 index 000000000..349ec11bb Binary files /dev/null and b/build/windows/SyncGitHubReleases.exe.pdb differ diff --git a/build/windows/Update.exe b/build/windows/Update.exe index 6969bf563..720f6c16d 100644 Binary files a/build/windows/Update.exe and b/build/windows/Update.exe differ diff --git a/build/windows/Update.exe.pdb b/build/windows/Update.exe.pdb index 9f8afd8e9..8016435ca 100644 Binary files a/build/windows/Update.exe.pdb and b/build/windows/Update.exe.pdb differ