Skip to content

Instantly share code, notes, and snippets.

@valter-silva-au
Last active February 2, 2018 09:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save valter-silva-au/bfd1b5a03143ccce00d2673eec356f9f to your computer and use it in GitHub Desktop.
Save valter-silva-au/bfd1b5a03143ccce00d2673eec356f9f to your computer and use it in GitHub Desktop.
#!/bin/bash
set -x
# Credits: https://stackoverflow.com/a/37939589
function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; }
JENKINS_DIR="/usr/lib/jenkins"
CURRENT_JENKINS_VERSION=$(java -jar "${JENKINS_DIR}/jenkins.war" --version)
JENKINS_VERSION=$(curl -s http://updates.jenkins-ci.org/download/war/ | grep "href='/download/war" | awk '{ print $3 }' | head -n 1 | sed "s,href='/download/war/,," | sed "s,</a></td></tr>,," | tr "/" "\n" | head -n 1
)
if [ $(version ${CURRENT_JENKINS_VERSION}) -ge $(version "${JENKINS_VERSION}") ]; then
echo "Version is up to date"
exit 0
fi
mkdir -p /tmp/downloads/ && cd /tmp/downloads/ \
&& wget "http://updates.jenkins-ci.org/download/war/${JENKINS_VERSION}/jenkins.war" \
&& sudo cp "${JENKINS_DIR}/jenkins.war" "${JENKINS_DIR}/jenkins.war.previous.version" \
&& sudo systemctl stop jenkins && sudo cp /tmp/downloads/jenkins.war "${JENKINS_DIR}/jenkins.war" \
&& sudo chmod 644 "${JENKINS_DIR}/jenkins.war" \
&& sudo systemctl stop jenkins \
&& sudo systemctl start jenkins \
&& rm -rf /tmp/downloads
# add this line into your crontab to update Jenkins daily
# 0 0 * * * $HOME/update_jenkins.sh >> $HOME/update_jenkins.log
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment