Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-53273

Implement the Evergreen Automated Rollback system

    XMLWordPrintable

    Details

    • Epic Name:
      Evergreen Automatic Rollback System
    • Sprint:
      Evergreen - Milestone 1, Evergreen - Milestone 2
    • Similar Issues:

      Description

      The automated rollback system has been designed, but not implemented yet.

      Related JEPs/documents:

      • JEP 302 for the Git based snapshotting system
      • JEP 306 for the healthchecking

      Acceptance criteria

      1. Set up an evergreen instance, it is at UL-X
      2. publish a (broken) update level (example: adding a plugin without a required dependency) => instance upgrades to UL-X
      3. after restart, evergreen client detects Jenkins cannot restart, and rolls back to UL-X.
      4. Jenkins is accessible again
      5. a correct UL is published, Jenkins can upgrade to it

        Attachments

          Issue Links

            Activity

            Hide
            batmat Baptiste Mathus added a comment -

            Started trying to find some library to manage a git repo. Until now, no luck:

            > nodegit@0.22.2 install /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit
            > node lifecycleScripts/preinstall && node lifecycleScripts/install
            
            [nodegit] Running pre-install script
            [nodegit] Configuring libssh2.
            { Error: Command failed: /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl
            /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing: Unknown `--is-lightweight' option
            Try `/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing --help' for more information
            configure: WARNING: 'missing' script is too old or missing
            configure: error: No crypto library found!
            Try --with-libssl-prefix=PATH
             or --with-libgcrypt-prefix=PATH
             or --with-wincng on Windows
            
                at ChildProcess.exithandler (child_process.js:275:12)
                at emitTwo (events.js:126:13)
                at ChildProcess.emit (events.js:214:7)
                at maybeClose (internal/child_process.js:925:16)
                at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
              killed: false,
              code: 1,
              signal: null,
              cmd: '/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl' }
            /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing: Unknown `--is-lightweight' option
            Try `/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing --help' for more information
            configure: WARNING: 'missing' script is too old or missing
            configure: error: No crypto library found!
            Try --with-libssl-prefix=PATH
             or --with-libgcrypt-prefix=PATH
             or --with-wincng on Windows
            
            [nodegit] ERROR - Could not finish preinstall
            { Error: Command failed: /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl
            /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing: Unknown `--is-lightweight' option
            Try `/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing --help' for more information
            configure: WARNING: 'missing' script is too old or missing
            configure: error: No crypto library found!
            Try --with-libssl-prefix=PATH
             or --with-libgcrypt-prefix=PATH
             or --with-wincng on Windows
            
                at ChildProcess.exithandler (child_process.js:275:12)
                at emitTwo (events.js:126:13)
                at ChildProcess.emit (events.js:214:7)
                at maybeClose (internal/child_process.js:925:16)
                at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5)
              killed: false,
              code: 1,
              signal: null,
              cmd: '/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl' }
            npm WARN evergreen-
            
            Show
            batmat Baptiste Mathus added a comment - Started trying to find some library to manage a git repo. Until now, no luck: https://www.npmjs.com/package/run-git-command => IIUC, uses ES6 import feature. Which fails in our build as it is. http://www.nodegit.org/ seemed very nice, but cannot get it to work on my machine. And it's fun but their CI actually says the build is borked on Linux: > nodegit@0.22.2 install /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit > node lifecycleScripts/preinstall && node lifecycleScripts/install [nodegit] Running pre-install script [nodegit] Configuring libssh2. { Error: Command failed: /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing: Unknown `--is-lightweight' option Try `/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing --help' for more information configure: WARNING: 'missing' script is too old or missing configure: error: No crypto library found! Try --with-libssl-prefix=PATH or --with-libgcrypt-prefix=PATH or --with-wincng on Windows at ChildProcess.exithandler (child_process.js:275:12) at emitTwo (events.js:126:13) at ChildProcess.emit (events.js:214:7) at maybeClose (internal/child_process.js:925:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5) killed: false, code: 1, signal: null, cmd: '/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl' } /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing: Unknown `--is-lightweight' option Try `/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing --help' for more information configure: WARNING: 'missing' script is too old or missing configure: error: No crypto library found! Try --with-libssl-prefix=PATH or --with-libgcrypt-prefix=PATH or --with-wincng on Windows [nodegit] ERROR - Could not finish preinstall { Error: Command failed: /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl /home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing: Unknown `--is-lightweight' option Try `/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/missing --help' for more information configure: WARNING: 'missing' script is too old or missing configure: error: No crypto library found! Try --with-libssl-prefix=PATH or --with-libgcrypt-prefix=PATH or --with-wincng on Windows at ChildProcess.exithandler (child_process.js:275:12) at emitTwo (events.js:126:13) at ChildProcess.emit (events.js:214:7) at maybeClose (internal/child_process.js:925:16) at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5) killed: false, code: 1, signal: null, cmd: '/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/libssh2/configure --with-libssl-prefix=/home/tiste/dev/github/jenkins-infra/evergreen/distribution/client/node_modules/nodegit/vendor/openssl/openssl' } npm WARN evergreen-

              People

              • Assignee:
                batmat Baptiste Mathus
                Reporter:
                batmat Baptiste Mathus
              • Votes:
                0 Vote for this issue
                Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated: