44# building core modules, and installing Maven archetypes.
55# ##
66set -euo pipefail
7+ [ " ${DEBUG:- 0} " = " 1" ] && set -x
78
89log () {
910 echo " [setup-workspace] $1 "
@@ -18,6 +19,8 @@ DOWNLOAD_DIR="$TMPDIR/codenameone-tools"
1819mkdir -p " $DOWNLOAD_DIR "
1920ENV_DIR=" $DOWNLOAD_DIR /tools"
2021mkdir -p " $ENV_DIR "
22+ CN1_BINARIES=" $ENV_DIR /cn1-binaries"
23+ mkdir -p " $CN1_BINARIES /javase"
2124
2225# Reuse previously saved environment if present (so we can skip downloads)
2326if [ -f " $ENV_DIR /env.sh" ]; then
@@ -149,21 +152,46 @@ log "Maven version:"; "$MAVEN_HOME/bin/mvn" -version
149152
150153PATH=" $JAVA_HOME /bin:$MAVEN_HOME /bin:$PATH "
151154
155+ if [ ! -d " $BINARIES_DIR /.git" ]; then
156+ log " Cloning cn1-binaries"
157+ git clone
[email protected] :codenameone/cn1-binaries.git
" $BINARIES_DIR " 158+ else
159+ log " Updating cn1-binaries"
160+ git -C " $BINARIES_DIR " pull --rebase
161+ fi
162+
152163log " Building Codename One core modules"
153- " $MAVEN_HOME /bin/mvn" -q -f maven/pom.xml -DskipTests -Djava.awt.headless=true install " $@ "
164+ " $MAVEN_HOME /bin/mvn" -Dcn1.binaries= " $CN1_BINARIES " -f maven/pom.xml -DskipTests -Djava.awt.headless=true install " $@ "
154165
155166BUILD_CLIENT=" $HOME /.codenameone/CodeNameOneBuildClient.jar"
156167log " Ensuring CodeNameOneBuildClient.jar is installed"
157168if [ ! -f " $BUILD_CLIENT " ]; then
158- if ! " $MAVEN_HOME /bin/mvn" -f maven/pom.xml cn1:install-codenameone " $@ " ; then
169+ if ! " $MAVEN_HOME /bin/mvn" -Dcn1.binaries= " $CN1_BINARIES " - f maven/pom.xml cn1:install-codenameone " $@ " ; then
159170 log " Falling back to copying CodeNameOneBuildClient.jar"
160171 mkdir -p " $( dirname " $BUILD_CLIENT " ) "
161172 cp maven/CodeNameOneBuildClient.jar " $BUILD_CLIENT " || true
162173 fi
163174fi
164175
165176log " Installing cn1-maven-archetypes"
166- if [ ! -d cn1-maven-archetypes ]; then
167- git clone https://github.com/shannah/cn1-maven-archetypes
177+ set +e # don't let a transient git failure abort the whole build
178+ if [ -d cn1-maven-archetypes/.git ]; then
179+ log " Updating existing cn1-maven-archetypes checkout"
180+ if ! git -C cn1-maven-archetypes fetch --all --tags; then
181+ log " git fetch failed (exit 128?). Leaving existing copy as-is."
182+ else
183+ git -C cn1-maven-archetypes reset --hard origin/master || \
184+ log " git reset failed; keeping local state."
185+ fi
186+ else
187+ if ! git clone https://github.com/shannah/cn1-maven-archetypes cn1-maven-archetypes; then
188+ log " git clone failed (likely exit 128). Skipping archetype install."
189+ skip_archetypes=1
190+ fi
168191fi
169- (cd cn1-maven-archetypes && " $MAVEN_HOME /bin/mvn" -q -DskipTests -DskipITs=true -Dinvoker.skip=true install)
192+ set -e
193+
194+ if [ " ${skip_archetypes:- 0} " -eq 0 ]; then
195+ (cd cn1-maven-archetypes && " $MAVEN_HOME /bin/mvn" -Dcn1.binaries=" $CN1_BINARIES " -DskipTests -DskipITs=true -Dinvoker.skip=true install) || \
196+ log " Archetype mvn install failed; continuing."
197+ fi
0 commit comments