• Robert Knight's avatar
    Semi-automatically publish a client release from Jenkins · e8be244d
    Robert Knight authored
    When performing a Jenkins CI build of the "master" branch, prompt the
    user to deploy and then after they approve, execute the same release
    process that a developer currently executes on their machine, namely:
    
     1. Update the changelog
     2. Run "yarn version" to update the package version, create a tag and GitHub release.
    
    After these steps the release process continues on Jenkins as before,
    with an npm package published and the build deployed to an S3-backed CDN
    using the s3-npm-publish tool.
    
    Enabling publishing the release entirely from Jenkins required some
    additional changes:
    
     - Use a Debian Stretch-based Node container, to get a newer Git
       version which supports "taggerdate", used by the changelog scripts.
     - Disable Git tag signing, since this is not set up on Jenkins.
     - Do not run "make test" from the preversion script, since this has
       already been run by Jenkins earlier in the process.
    
    Additionally to facilitate testing of this branch I added support for
    specifying a prerelease version suffix. This made it possible to test
    the whole deployment process without updating the live version of the
    client. In future this will likely come in useful for doing staging/QA
    releases.
    e8be244d
Jenkinsfile 4.42 KB