Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update jenkins-agent.sh to work on ARM Macs #38693

Merged
merged 2 commits into from
Jan 27, 2025
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 26 additions & 8 deletions buildconfig/Jenkins/jenkins-agent.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,16 @@ SECRET=${2}
#####################################################################
# URL of jnlp file for agent
AGENT_URL="${JENKINS_URL}/computer/${NODE_NAME}/jenkins-agent.jnlp"

# version number of the agent jar
JAR_VERSION=4.13
# name of the agent jar - full path is determined later
JAR_FILE=remoting-${JAR_VERSION}.jar
LEGACY_JAR_VERSION=4.13
# name of the legacy agent jar - full path is determined later
LEGACY_JAR_FILE=remoting-${LEGACY_JAR_VERSION}.jar
# URL to jenkins rpeo
JENKINS_REPO_URL=https://repo.jenkins-ci.org/artifactory/releases/org/jenkins-ci/main/remoting
LEGACY_JENKINS_REPO_URL=https://repo.jenkins-ci.org/artifactory/releases/org/jenkins-ci/main/remoting

# Name of the agent jar - full path determined later
MAIN_JAR_FILE=agent.jar

# Some versions of cron don't set the USER environment variable
# required by vnc
Expand Down Expand Up @@ -88,6 +92,14 @@ if [ ! -z "${PROXY_HOST}" ]; then
export https_proxy=https://$PROXY_HOST:$PROXY_PORT
fi

if [[ "$OSTYPE" == "darwin"* ]] && [[ $(uname -m) == 'arm64' ]]; then
JAR_FILE=$MAIN_JAR_FILE
cailafinn marked this conversation as resolved.
Show resolved Hide resolved
JAR_LOCATION="${JENKINS_URL}/jnlpJars"
else
JAR_FILE=$LEGACY_JAR_FILE
JAR_LOCATION="${LEGACY_JENKINS_REPO_URL}/${LEGACY_JAR_VERSION}"
fi

# find the jar file if it exists
if [ -f ${HOME}/jenkins-linode/${JAR_FILE} ]; then
JAR_FILE=${HOME}/jenkins-linode/${JAR_FILE}
Expand All @@ -98,10 +110,10 @@ else
if [ ! -f ${JAR_FILE_TMP} ]; then
echo "Downloading agent jar file to ${JAR_FILE_TMP}"
if [ $(command -v curl) ]; then
echo "curl --location -o ${JAR_FILE_TMP} ${JENKINS_REPO_URL}/${JAR_VERSION}/${JAR_FILE}"
curl --location -o ${JAR_FILE_TMP} ${JENKINS_REPO_URL}/${JAR_VERSION}/${JAR_FILE}
echo "curl --location -o ${JAR_FILE_TMP} ${JAR_LOCATION}/${JAR_FILE}"
curl --location -o ${JAR_FILE_TMP} ${JAR_LOCATION}/${JAR_FILE}
else
echo "Need curl to download ${JENKINS_REPO_URL}/${JAR_VERSION}/${JAR_FILE}"
echo "Need curl to download ${JAR_LOCATION}/${JAR_FILE}"
exit -1
fi
fi
Expand All @@ -112,6 +124,12 @@ echo "starting ..."
if [ -z "${JAVA}" ]; then
JAVA=`which java`
fi
JAVA_ARGS="${PROXY_ARGS} -jar ${JAR_FILE} -jnlpUrl ${AGENT_URL} -secret ${SECRET}"

if [[ "$OSTYPE" == "darwin"* ]] && [[ $(uname -m) == 'arm64' ]]; then
cailafinn marked this conversation as resolved.
Show resolved Hide resolved
JAVA_ARGS="${PROXY_ARGS} -jar ${JAR_FILE} -url ${JENKINS_URL} -secret ${SECRET} -name ${NODE_NAME}"
else
JAVA_ARGS="${PROXY_ARGS} -jar ${JAR_FILE} -jnlpUrl ${AGENT_URL} -secret ${SECRET}"
fi

echo "${JAVA} ${JAVA_ARGS}"
${JAVA} ${JAVA_ARGS}
Loading