5 2 2 - Shippable/support GitHub Wiki

5.2.2 Release Notes

Release Date

3:00am PST, Sunday, Feb 5, 2017

Features

  • New job type: 'runCLI': A new job type called 'runCLI' has been added. More details in documentation
  • New resource type: 'cliConfig': A new resource type called 'cliConfig' has been added. More details in documentation
  • New generic build handler rollout to dynamic/system/custom nodes: Some users were running into issues due to two build handlers. This release combines them into a single generic build handler

Fixes

  • For Python projects, setup_ve ignores virtuanenv errors: The script has been updated to check for errors and fail the build
  • Few users unable to navigate to public projects page: This has been fixed in this release
  • C++ images missing in our AMIs: drydock/u14cpp and drydock/u12cpp are added to the AMIs
  • SPOG job modal does not show resourceID: With this fix, click on a job to see the resourceID on the top left of the job modal

Upgrading Server to 5.2.2

To upgrade Shippable Server, follow the instructions below. All steps in the upgrade happen on the Swarm Master machine except when noted otherwise.

  • Pre-installation:

    • Backup the usr/state.json file and the Postgres database (on the core machine)

    • Pull the latest code by running the following:

      • git fetch
      • git tag
      • git checkout v5.2.2
    • Enable master integrations for state, file storage and notifications by adding the following values in masterIntegrations array

      [
          {
            "name": "amazonKeys",
            "type": "generic"
          },
          {
            "name": "gitlabCreds",
            "type": "generic"
          },
          {
            "name": "smtpCreds",
            "type": "generic"
          },
          {
            "name": "gmailCreds",
            "type": "generic"
          },
          {
            "name": "mailgunCreds",
            "type": "generic"
          }
      ]
      
    • Update systemIntegrations array to add credentials for masterIntegrations that have been enabled

      [
          {
            "name": "filestore",
            "masterName": "amazonKeys",
            "masterType": "generic",
            "formJSONValues": [
              {
                "label": "accessKey",
                "value": "<copy value from 'AWS-ROOT' systemIntegration>"
              },
              {
                "label": "secretKey",
                "value": "<copy value from 'AWS-ROOT' systemIntegration>"
              }
            ]
          },
          {
            "formJSONValues": [
              {
                "value": "<copy value from 'gitlab' systemIntegration>",
                "label": "username"
              },
              {
                "value": "<copy value from 'gitlab' systemIntegration>",
                "label": "subscriptionProjectLimit"
              },
              {
                "value": "<copy value from 'gitlab' systemIntegration>",
                "label": "password"
              },
              {
                "value": "<copy value from 'gitlab' systemIntegration>",
                "label": "url"
              },
              {
                "value": "<copy value from 'gitlab' systemIntegration>",
                "label": "sshPort"
              }
            ],
            "masterType": "generic",
            "masterName": "gitlabCreds",
            "name": "state"
          },
          {
            "name": "notification",
            "masterName": "smtpCreds",
            "masterType": "generic",
            "formJSONValues": [
              {
                "label": "emailAuthPassword",
                "value": "<copy value from 'Email NF' systemIntegration>"
              },
              {
                "label": "emailAuthUser",
                "value": "<copy value from 'Email NF' systemIntegration>"
              },
              {
                "label": "emailSender",
                "value": "<copy value from 'Email NF' systemIntegration>"
              },
              {
                "label": "host",
                "value": "<copy value from 'Email NF' systemIntegration>"
              },
              {
                "label": "port",
                "value": "<copy value from 'Email NF' systemIntegration>"
              },
              {
                "label": "secure",
                "value": "false"
              }
            ],
            "isEnabled": true
          }
      ]
      
    • Run sudo apt-get update on all machines

    • Enable/disable any integrations by adding/removing services in the systemIntegration section of the state.json file

  • Installation:

    • Run sudo ./base.sh --release v5.2.2
  • Post installation:

    • Stop the runSh/mexec container manually before resetting the systemNodes
    • Verify genexec/mexec are running the latest version
    • Reset all system nodes