5 2 3 - Shippable/support GitHub Wiki
5.2.3 Release Notes
Release Date
8:00pm PST, Friday, Feb 17, 2017
Features
- Ability to configure CI Projects as Pipeline jobs A new resource
ciRepo
and a new jobrunCI
allow configuring CI projects as Pipeline jobs. Check out the tutorial for connecting CI to Pipelines - Integrations added to
cliConfig
resource: Docker Trusted Registry, JFrog Artifactory, Private Docker Registry, Terraform and Packer have been added to the existing list of supported integrations - More environmental variables in runSh and runCLI jobs: The following variables
JOB_PATH
,JOB_STATE
,JOB_PREVIOUS_STATE
,JOB_MESSAGE
,JOBNAME_NAME
,JOBNAME_TYPE
,JOBNAME_PATH
,JOBNAME_STATE
,JOBNAME_PREVIOUS_STATE
,JOBNAME_MESSAGE
,RESOURCENAME_STATE
andRESOURCENAME_META
are added. Read more in our documentation - All subscriptions running on Shippable Nodes have an updated Shippable Agent: We made changes to the Shippable agent for improved performance. Read more about it in our documentation.
- Custom Nodes reset to implement the updated Shippable Agent: A reset was enforced for all custom nodes that were not reset since the 5.2.2 release. Builds will fail on custom nodes initialized using a script, if they have not been reset. For more details, read the FAQ section on this issue
- Console logs stored for three months: With this release, we've increased the duration of storing the console logs. Read details in our documentation
- OAuth login integration with GitLab EE: This feature can be enabled in system integrations for Server customers only
Server installer changes
- Removing a 'System integration' from the
state.json
file will remove the corresponding integration - Drydock tag added to
systemMachineImages
- Installer runs database clean up after provisioning services
Fixes
- Builds failed for few users upon resetting their custom nodes: This fix ensures the correct packages for binaries are loaded and the Docker Hub images have correct versions. Builds will run successfully after a custom node reset
- CI jobs fail when trying to pull Docker images: Jobs failed due to a Docker DNS issue. This fix adds a nameserver to the stable/unstable AMIs and resolves the issue
- Limits console size to 64 MB: With this limit, if the console size exceeds 64 MB, you'll see the error
Console size exceeds 64 MB limit. Truncated from here
. - Escaping of CI environment variables is inconsistent and causes build failures: We are now escaping more special characters for CI environment variables
- jobConsole download file name is too generic: Filename is now in format
org-project-runNumber.jobNumber.log
- Only Project owners can synchronize a project: The fix allows super users and non-owners to synchronize a project
- Super users unable to access
Account used to Process Webhooks
: Fixes Super User access toAccount Used to Process Webhooks
panel in 'Project/Settings/runsConfig' section in the dashboard - API process does not retry a connection after a disconnect from RabbitMQ: The fix ensures the API process ends when there's a disconnect from RabbitMQ. This notifies Swarm to bring up a new instance of the API process and reconnect to RabbitMQ
Upgrading Server from 5.2.2 to 5.2.3
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.3
-
Remove the following integrations from
masterIntegrations
array inusr/state.json
fileGit store
SMTP
Email
mailgun
braintree
S3
github
(typeauth
)bitbucket
(typeauth
)githubenterprise
(typeauth
)bitbucketServer
(typeauth
)AWS
(typecloudproviders
)hubspot
(typemktg
)
-
Remove the following integrations from
systemIntegrations
array inusr/state.json
fileEmail NF
braintree
s3
hubspot
gitab
(masterName=Git store
)AWS-ROOT
github.com
(masterType: auth)Email NF 22
bitbucket.com
(masterType: auth)SMTP
-
Edit
usr/state.json
file to add the following integrations``` [ { "type": "generic", "name": "hubspotToken" }, { "type": "generic", "name": "bitbucketserverKeys" }, { "type": "generic", "name": "githubenterpriseKeys" }, { "type": "generic", "name": "bitbucketKeys" }, { "type": "generic", "name": "githubKeys" }, { "type": "generic", "name": "braintreeKeys" } { "type": "generic", "name": "mailgunCreds" } ] ```
-
Edit the
usr/state.json
file to add the followingsystemIntegrations
array``` [ { "name": "mktg", "masterName": "hubspotToken", "formJSONValues": [ { "label": "hubspotApiEndPoint", "value": "<copy value from 'hubspot' system integration>" }, { "label": "hubspotApiToken", "value": "<copy value from 'hubspot' system integration>" } ] }, { "formJSONValues": [ { "value": "<copy value from 'braintree' system integration>", "label": "braintreeMerchantId" }, { "value": "<copy value from 'braintree' system integration>", "label": "braintreePrivateKey" }, { "value": "<copy value from 'braintree' system integration>", "label": "braintreeEnvironment" }, { "value": "<copy value from 'braintree' system integration>", "label": "braintreePublicKey" } ], "masterName": "braintreeKeys", "name": "payment" }, { "name": "auth", "masterName": "bitbucketserverKeys", "formJSONValues": [ { "value": "<copy value from 'bitbucketServer' system integration>", "label": "clientSecret" }, { "value": "<copy value from 'bitbucketServer' system integration>", "label": "clientId" }, { "value": "<copy value from 'bitbucketServer' system integration>", "label": "url" }, { "value": "<copy value from 'bitbucketServer' system integration>", "label": "wwwUrl" } ] } { "name": "auth", "masterName": "githubenterpriseKeys", "formJSONValues": [ { "value": "<copy value from 'GHE' system integration>", "label": "clientSecret" }, { "value": "<copy value from 'GHE' system integration>", "label": "clientId" }, { "value": "<copy value from 'GHE' system integration>", "label": "url" }, { "value": "<copy value from 'GHE' system integration>", "label": "wwwUrl" } ] }, { "name": "auth", "masterName": "githubKeys", "formJSONValues": [ { "label": "clientId", "value": "<copy value from 'github.com' system integration>" }, { "label": "clientSecret", "value": ""<copy value from 'github.com' system integration>"" }, { "label": "wwwUrl", "value": ""<copy value from 'github.com' system integration>"" }, { "label": "url", "value": ""<copy value from 'github.com' system integration>"" } ] }, { "name": "auth", "masterName": "bitbucketKeys", "formJSONValues": [ { "label": "clientId", "value": "<copy value from 'bitbucket.org' system integration>" }, { "label": "clientSecret", "value": ""<copy value from 'bitbucket.org' system integration>"" }, { "label": "wwwUrl", "value": ""<copy value from 'bitbucket.org' system integration>"" }, { "label": "url", "value": ""<copy value from 'bitbucket.org' system integration>"" } ] }, { "name": "provision", "masterName": "amazonKeys", "formJSONValues": [ { "label": "accessKey", "value": "<copy value from 'AWS-ROOT' system integration>" }, { "label": "secretKey", "value": "<copy value from 'AWS-ROOT' system integration>" } ] }, { "name": "notification", "masterName": "smtpCreds", "formJSONValues": [ { "label": "emailAuthPassword", "value": "<Copy email auth password from smtp>" }, { "label": "emailAuthUser", "value": "<Copy email auth user from smtp>" }, { "label": "emailSender", "value": "<Copy email sender from smtp>" }, { "label": "host", "value": "<copy host from smtp>" }, { "label": "port", "value": "<copy port from smtp>" }, { "label": "secure", "value": "false" } ] }
] ```
-
For using notifications using mailgun insert the following systemIntegrations
{ "formJSONValues": [ { "value": "<copy value from 'Mailgun NF 22' system integration>", "label": "apiKey" }, { "value": "<copy value from 'Mailgun NF 22' system integration>", "label": "domain" } ], "masterName": "mailgunCreds", "name": "notification" }
-
Add
"drydockTag": "prod"
to existing"systemMachineImages"
-
Remove
dynamicNodesSystemIntegrationId
field from theusr/state.json
file -
Manually clean up S3 artifact systemIntegrations from DB/Vault and the
usr/state.json
file -
Manually create a directory named logs in base/usr
-
Add a field
systemSettings.nodeScriptsRemoteLocation="https://github.com/Shippable/node/tarball"
inusr/state.json
-
Run
sudo apt-get update
on all machines -
Enable/disable any integrations by adding/removing services in the
systemIntegration
section of thestate.json
file
-
-
Installation:
- Run
sudo ./base.sh --release v5.2.3
- Run
-
Post installation:
- Stop the genexec/mexec container manually before resetting the systemNodes
- Reset all system nodes
- Verify genexec/mexec are running the latest version