blob: f190487834bfe89ffbf41b26bf458498d3635053 [file] [log] [blame]
// the label is unique and identifies the pod descriptor and its resulting pods
// without this, the agent could be using a pod created from a different descriptor
def label = "glassfish-ci-${UUID.randomUUID().toString()}"
podTemplate(label: label, yaml: """
apiVersion: v1
kind: Pod
spec:
securityContext:
runAsUser: 1000100000
volumes:
- name: maven-repo-shared-storage
persistentVolumeClaim:
claimName: glassfish-maven-repo-storage
- name: maven-repo-local-storage
emptyDir: {}
- name: maven-settings
configMap:
name: maven-settings.xml
containers:
- name: jnlp
image: jenkins/jnlp-slave:alpine
imagePullPolicy: IfNotPresent
volumeMounts:
env:
- name: JAVA_TOOL_OPTIONS
value: -Xmx1G
resources:
limits:
memory: "1Gi"
cpu: "1"
- name: glassfish-ci
image: ee4jglassfish/ci:jdk-8.181
args:
- cat
tty: true
imagePullPolicy: Always
volumeMounts:
- mountPath: "/home/jenkins/.m2/settings.xml"
subPath: maven-settings.xml
name: maven-settings
- mountPath: "/home/jenkins/.m2/repository"
name: maven-repo-shared-storage
resources:
limits:
memory: "7Gi"
cpu: "3"
"""
) {
node (label) {
container('glassfish-ci') {
sh '''
# wipe-out the local repo
if [ "${CLEAN_ALL}" = "true" ] ; then
rm -rf ${HOME}/.m2/repository/*
exit 0
fi
# purge local repo for specific GAVs
mvn \
org.apache.maven.plugins:maven-dependency-plugin:3.1.1:purge-local-repository \
-DmanualInclude="${INCLUDES}" \
-DreResolve="false"
# re-resolve
IFS=,
if [ "${RE_RESOLVE}" = "true" ] ; then
for artifact in ${INCLUDES} ; do
mvn \
org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get \
-Dartifact="${artifact}" \
-DremoteRepositories="sonatype-nexus-staging::default::https://oss.sonatype.org/content/repositories/staging"
done
fi
'''
}
}
}