Skip to content

Instantly share code, notes, and snippets.

@alecharp
Created September 12, 2017 10:58
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save alecharp/f39e3bd246fb8e6a3b528e58ec3292db to your computer and use it in GitHub Desktop.
Save alecharp/f39e3bd246fb8e6a3b528e58ec3292db to your computer and use it in GitHub Desktop.
#!/bin/shell
set -euo pipefail
HERE="$(pwd)"
RELEASE=${1:-"lts"}
usage() {
cat <<EOF
Usage: $1 [lts | weekly]
EOF
exit 1
}
case ${RELEASE} in
"lts")
SUFFIX="stable"
JENKINS_OPTS="--httpPort=9191"
DL="http://mirrors.jenkins.io/war-stable/latest/jenkins.war"
;;
"weekly")
SUFFIX="weekly"
JENKINS_PARAMETERS="-Dhudson.model.Hudson.killAfterLoad=true
-Djenkins.model.Jenkins.logStartupPerformance=true"
JENKINS_OPTS="--http2Port=9193 --httpPort=9192"
DL="http://mirrors.jenkins.io/war/latest/jenkins.war"
# cp -frup ${HERE}/jenkins-stable ${HERE}/jenkins-weekly
rsync -qa ${HERE}/jenkins-stable ${HERE}/jenkins-weekly --exclude workspace
;;
*)
usage $@
;;
esac
EXPLODED_PATH="/tmp/jenkins-${SUFFIX}"
JENKINS_HOME="${HERE}/jenkins-${SUFFIX}"
WAR="/tmp/jenkins-${SUFFIX}.war"
if [[ ! -f ${WAR} ]]; then
echo "There is no Jenkins executable locally. Fixing this for you.."
curl -qL ${DL} -o ${WAR}
echo "DONE. BOOM. YOU'RE WELCOME!"
fi
### See https://wiki.jenkins.io/display/JENKINS/Starting+and+Accessing+Jenkins
JENKINS_OPTS="${JENKINS_OPTS}
--webroot=${EXPLODED_PATH}/war
--pluginroot=${EXPLODED_PATH}/plugins
--ajp13Port=-1
"
### See https://wiki.jenkins.io/display/JENKINS/Features+controlled+by+system+properties
JENKINS_PARAMETERS="${JENKINS_PARAMETERS:-}
-Dhudson.model.WorkspaceCleanupThread.recurrencePeriodHours=1
-Dhudson.model.WorkspaceCleanupThread.retainForDays=5
-Dhudson.security.ExtendedReadPermission=true
-Dhudson.slaves.WorkspaceList=_
-Dhudson.TreeView=true
-Djenkins.CLI.disabled=true
-Dhudson.model.Run.ArtifactList.listCutoff=4
-Dhudson.model.Run.ArtifactList.treeCutoff=10
-Dhudson.DNSMultiCast.disabled=true
-Dhudson.udp=-1
"
JAVA_OPTS="-server
-Xmx1g
-Xms1g
-XX:+AlwaysPreTouch
-XX:+UseStringDeduplication
-XX:+UnlockExperimentalVMOptions
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=${JENKINS_HOME}/heapdump/
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses
-XX:+CMSParallelRemarkEnabled
-XX:+ParallelRefProcEnabled
-XX:+CMSClassUnloadingEnabled
-XX:+ScavengeBeforeFullGC
-XX:+CMSScavengeBeforeRemark
-XX:NewSize=512m
-XX:MaxNewSize=512m
-XX:NewRatio=2
"
JENKINS_HOME="${JENKINS_HOME}" java ${JAVA_OPTS} ${JENKINS_PARAMETERS} -jar ${WAR} ${JENKINS_OPTS}
@mwos-sl
Copy link

mwos-sl commented Jul 6, 2021

 -Dhudson.DNSMultiCast.disabled=true

as per doc:

Has no effect since 2.220 as the feature has been removed. See SECURITY-1641

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment