You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 28 Current »

Installers Build job

Installer build job for Linux and Windows installers:
https://builds.apache.org/view/M-R/view/NetBeans/job/netbeans-installers/

Mac Installer needs to be built locally, please refer INFRA-17961

Signing

For signing Windows and Mac installers, used Apache Code Service service. Tried with Test Signing for Windows. More info is here : https://reference.apache.org/pmc/codesigning

Mac Installer .pkg is signed during build hence build will fail if Certificate identity-name string is not provided in below build script.

May refer  Unable to render Jira issues macro, execution error.  for creating code signing accounts.

Steps to build installers 

git clone https://github.com/apache/netbeans.git

cd netbeans

Run ant build

Copy release artifact zip(eg netbeans-11.3-bin.zip) to current folder.

Linux and Windows Installers:

Run below bash script from current dir

BASE_DIR=`pwd`
NB_ALL=$BASE_DIR
export BASE_DIR NB_ALL

DIST=$BASE_DIR/dist
export DIST

if [ -d $DIST ] ; then
rm -rf $DIST
fi

rm -rf NBI-cache

mkdir -p $DIST/zip/moduleclusters
mkdir -p $DIST/logs

ARTIFACT=netbeans-*-bin
BIN_NAME=`ls $ARTIFACT.zip`
BINARY_NAME=`echo "${BIN_NAME%%.zip*}"`


#create cluster zip files
rm -rf temp
unzip $BINARY_NAME.zip -d temp
cd temp
mkdir javase
mkdir javase/netbeans
mkdir javaee
mkdir javaee/netbeans
mkdir webcommon
mkdir webcommon/netbeans
mkdir php
mkdir php/netbeans
mkdir extide
mkdir extide/netbeans

cd netbeans
#java
mv apisupport ../javase/netbeans
mv ergonomics ../javase/netbeans
mv java ../javase/netbeans
mv javafx ../javase/netbeans
mv profiler ../javase/netbeans

#javaee
mv enterprise ../javaee/netbeans
mv groovy ../javaee/netbeans

#webcommon
mv webcommon ../webcommon/netbeans

#php
mv php ../php/netbeans

#websvccommon
mv websvccommon ../extide/netbeans

#create cluster zip files
cd ..
echo `pwd`
echo $BINARY_NAME
zip -r $BINARY_NAME-base.zip netbeans
mv $BINARY_NAME-base.zip ..

echo `pwd`

cd javase
zip -r $BINARY_NAME-java.zip netbeans
mv $BINARY_NAME-java.zip ../..
cd ..

cd javaee
zip -r $BINARY_NAME-enterprise.zip netbeans
mv $BINARY_NAME-enterprise.zip ../..
cd ..

cd php
zip -r $BINARY_NAME-php.zip netbeans
mv $BINARY_NAME-php.zip ../..
cd ..

cd webcommon
zip -r $BINARY_NAME-webcommon.zip netbeans
mv $BINARY_NAME-webcommon.zip ../..
cd ..

cd extide
zip -r $BINARY_NAME-websvccommon.zip netbeans
mv $BINARY_NAME-websvccommon.zip ../..
cd ../..

rm -rf temp

mv $BINARY_NAME-*.zip $DIST/zip/moduleclusters

export BINARY_NAME

cd $BASE_DIR
#NB_BUILD_NUMBER=<YYMMDD>
NB_BUILD_NUMBER=200224
BUILDNUMBER=$NB_BUILD_NUMBER
DATESTAMP=$BUILDNUMBER
NB_VER_NUMBER=11.3
BASENAME_PREFIX=Apache-NetBeans-$NB_VER_NUMBER-bin
BUILD_DESC=$BASENAME_PREFIX
export NB_VER_NUMBER BUILDNUMBER BASENAME_PREFIX NB_BUILD_NUMBER DATESTAMP BUILD_DESC

MAC_PATH=$DIST
#export MAC_PATH

MAC_LOG_NEW=$DIST/logs/native_mac-$BUILDNUMBER.log
export MAC_LOG_NEW
BUILD_NB=1
BUILD_NETBEANS=0
BUILD_NBJDK6=0
BUILD_NBJDK7=0
BUILD_NBJDK8=0
BUILD_NBJDK11=0

export BUILD_NETBEANS BUILD_NB
export BUILD_NBJDK6 BUILD_NBJDK7 BUILD_NBJDK8 BUILD_NBJDK11
BUNDLE_JDK_PLATFORM=
export BUNDLE_JDK_PLATFORM

OUTPUT_DIR=${NB_ALL}/dist/installers
export OUTPUT_DIR

DONT_SIGN_INSTALLER=y
export DONT_SIGN_INSTALLER

bash -x $NB_ALL/nbbuild/newbuild/build-nbi.sh

Installers will be generated under dist/bundles

Windows installer exe can be signed using Code signing gui, link is above.

Mac OSX installer(Same script as above, only difference BUILD_MAC=1)

BASE_DIR=`pwd`
NB_ALL=$BASE_DIR
export BASE_DIR NB_ALL
  
DIST=$BASE_DIR/dist
export DIST
  
if [ -d $DIST ] ; then
rm -rf $DIST
fi
  
mkdir -p $DIST/zip/moduleclusters
mkdir -p $DIST/logs
  
ARTIFACT=netbeans-*-bin
BIN_NAME=`ls $ARTIFACT.zip`
BINARY_NAME=`echo "${BIN_NAME%%.zip*}"`
export BINARY_NAME
##########
rm -rf temp
mkdir -p temp
unzip $BINARY_NAME.zip -d temp
cd temp
mkdir javase
mkdir javase/netbeans
mkdir javaee
mkdir javaee/netbeans
mkdir webcommon
mkdir webcommon/netbeans
mkdir php
mkdir php/netbeans
mkdir extide
mkdir extide/netbeans
 
cd netbeans
#java
mv apisupport ../javase/netbeans
mv ergonomics ../javase/netbeans
mv java ../javase/netbeans
mv javafx ../javase/netbeans
mv profiler ../javase/netbeans
 
#javaee
mv enterprise ../javaee/netbeans
mv groovy ../javaee/netbeans
 
#webcommon
mv webcommon ../webcommon/netbeans
 
#php
mv php ../php/netbeans
 
#websvccommon
mv websvccommon ../extide/netbeans
 
#create cluster zip files
cd ..
 
echo `pwd`
echo $BINARY_NAME
zip -r $BINARY_NAME-base.zip netbeans
cp $BINARY_NAME-base.zip ..
 
echo `pwd`
 
cd javase
zip -r $BINARY_NAME-java.zip netbeans
cp $BINARY_NAME-java.zip ../..
cd ..
cd javaee
zip -r $BINARY_NAME-enterprise.zip netbeans
cp $BINARY_NAME-enterprise.zip ../..
cd ..
cd php
zip -r $BINARY_NAME-php.zip netbeans
cp $BINARY_NAME-php.zip ../..
cd ..
cd webcommon
zip -r $BINARY_NAME-webcommon.zip netbeans
cp $BINARY_NAME-webcommon.zip ../..
cd ..
cd extide
zip -r $BINARY_NAME-websvccommon.zip netbeans
cp $BINARY_NAME-websvccommon.zip ../..
cd ../..
rm -rf temp
##########
cp $BINARY_NAME-*.zip $DIST/zip/moduleclusters
 
rm -rf NBI-cache
cd $BASE_DIR
#NB_BUILD_NUMBER=<YYMMDD>
NB_BUILD_NUMBER=200224
BUILDNUMBER=$NB_BUILD_NUMBER
DATESTAMP=$BUILDNUMBER
NB_VER_NUMBER=11.3
BASENAME_PREFIX=Apache-NetBeans-$NB_VER_NUMBER-bin
BUILD_DESC=$BASENAME_PREFIX
export NB_VER_NUMBER BUILDNUMBER BASENAME_PREFIX NB_BUILD_NUMBER DATESTAMP BUILD_DESC
#export BUILDNUMBER BASENAME_PREFIX NB_BUILD_NUMBER DATESTAMP BUILD_DESC
 
#To build MAC installer on mac host set BUILD_MAC to 1
BUILD_MAC=1
export BUILD_MAC
MAC_SIGN_IDENTITY_NAME=/Users/aksinsin/Documents/mac-installer-sign/certificate.txt
export MAC_SIGN_IDENTITY_NAME
 
BUILD_NB=0
BUILD_NETBEANS=0
BUILD_NBJDK6=0
BUILD_NBJDK7=0
BUILD_NBJDK8=0
BUILD_NBJDK11=0
  
export BUILD_NETBEANS BUILD_NB
export BUILD_NBJDK6 BUILD_NBJDK7 BUILD_NBJDK8 BUILD_NBJDK11
  
OUTPUT_DIR=${NB_ALL}/dist/installers
export OUTPUT_DIR
  
DONT_SIGN_INSTALLER=y
export DONT_SIGN_INSTALLER
  
bash -x $NB_ALL/nbbuild/newbuild/build-nbi.sh

Note: If one is installing mac installer from the same machine where the dmg was build, then run below command for cleanup before launching installer
sudo rm -rf netbeans/nbbuild/installer/mac/newbuild/netBeans/nbide/build

The signed installer will get generated under dist/bundles.

Note:  Mac installer needs to signed using "Apple Developer Installer Certificate". Then we need to raise JIRA ticket for notarization of MAC installer ( similar to Unable to render Jira issues macro, execution error. ) without which installer might not work in some MAC systems

Reference

http://wiki.netbeans.org/Launchers_Installers_NBI

https://installer.netbeans.org/

https://hg.netbeans.org/jet-main/file/tip/installer

  • No labels