Skip to content

Commit d34c0f4

Browse files
Add travis and appveyor ci configuration
1 parent 0d17fdd commit d34c0f4

14 files changed

+318
-3
lines changed

.ci/build.bat

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
echo "Executing gradle"
2+
3+
call gradlew shadowJar -PVERSION=%APPVEYOR_REPO_TAG_NAME%
4+
5+
echo "TAG NAME"
6+
echo %APPVEYOR_REPO_TAG_NAME%
7+
8+
if NOT "%APPVEYOR_REPO_TAG_NAME%" == "" (
9+
set VERSION=%APPVEYOR_REPO_TAG_NAME%
10+
echo %VERSION%
11+
call .ci\windows.bat
12+
)

.ci/build.sh

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/bash
2+
3+
if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
4+
./gradlew check shadowJar -PVERSION=${TRAVIS_TAG};
5+
else
6+
# Skip tests that fail on osx without xvfb
7+
./gradlew check shadowJar -PVERSION=${TRAVIS_TAG} -PexcludeTests="FXOMSaverUpdateImportInstructionsTest,StaticLoadTest,SkeletonBufferTest";
8+
fi
9+
10+
# Check if tag is present and run build script
11+
if [ -n "${TRAVIS_TAG}" ]; then
12+
export VERSION=${TRAVIS_TAG};
13+
chmod +x .ci/${TRAVIS_OS_NAME}.sh;
14+
sh .ci/${TRAVIS_OS_NAME}.sh;
15+
fi

.ci/linux.sh

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#!/bin/bash
2+
3+
java -version
4+
5+
sudo apt-get update
6+
sudo apt-get install fakeroot # deb
7+
sudo apt-get install rpm # rpm
8+
9+
${JAVA_HOME}/bin/javapackager -createjar -v \
10+
-appclass com.oracle.javafx.scenebuilder.app.SceneBuilderApp \
11+
-nocss2bin \
12+
-srcfiles app/build/libs/scenebuilder-${VERSION}-all.jar \
13+
-outdir dist \
14+
-outfile dist.jar
15+
16+
cp app/src/main/resources/LICENSE dist
17+
18+
${JAVA_HOME}/bin/javapackager -deploy -v \
19+
-native \
20+
-outdir dist \
21+
-outfile dist \
22+
-vendor Gluon \
23+
-description "Scene Builder" \
24+
-appclass com.oracle.javafx.scenebuilder.app.SceneBuilderApp \
25+
-name SceneBuilder \
26+
-srcdir dist \
27+
-srcfiles dist.jar:LICENSE \
28+
-BappVersion=${VERSION} \
29+
-Bcategory=Development \
30+
-Bemail=support@gluonhq.com \
31+
-Bicon=app/assests/linux/icon-linux.png \
32+
-BlicenseFile=LICENSE \
33+
-BlicenseType=BSD \
34+
-Bcopyright="Copyright (c) 2012, 2014, Oracle and/or its affiliates, 2016, Gluon."
35+
36+
echo "Linux packager successfully created"
37+
38+
# Rename bundles
39+
mv dist/bundles/*-${VERSION}.deb dist/bundles/SceneBuilder-${VERSION}.deb
40+
mv dist/bundles/*-${VERSION}-*.rpm dist/bundles/SceneBuilder-${VERSION}.rpm
41+
42+
echo "Bundles directory contains..."
43+
ls dist/bundles/

.ci/osx.sh

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#!/bin/bash
2+
security -v unlock-keychain -p jenkins /Users/jenkins/Library/Keychains/#.keychain
3+
4+
export JAVA_HOME=$(/usr/libexec/java_home);
5+
echo $JAVA_HOME
6+
7+
java -version
8+
9+
${JAVA_HOME}/bin/javapackager -createjar -v \
10+
-appclass com.oracle.javafx.scenebuilder.app.SceneBuilderApp \
11+
-nocss2bin \
12+
-srcfiles app/build/libs/scenebuilder-${VERSION}-all.jar \
13+
-outdir dist \
14+
-outfile dist.jar
15+
16+
cp app/src/main/resources/LICENSE dist
17+
18+
${JAVA_HOME}/bin/javapackager -deploy -v \
19+
-native \
20+
-outdir dist \
21+
-outfile dist \
22+
-vendor Gluon \
23+
-description "Scene Builder" \
24+
-appclass com.oracle.javafx.scenebuilder.app.SceneBuilderApp \
25+
-name SceneBuilder \
26+
-srcdir dist \
27+
-srcfiles dist.jar:LICENSE \
28+
-BappVersion=${VERSION} \
29+
-Bcategory=Development \
30+
-Bemail=support@gluonhq.com \
31+
-Bicon=app/assets/osx/icon-mac.icns \
32+
-BlicenseFile=LICENSE \
33+
-BlicenseType=BSD \
34+
-Bcopyright="Copyright (c) 2012, 2014, Oracle and/or its affiliates, 2016, 2017, Gluon." \
35+
-Bmac.category=Education \
36+
-Bmac.CFBundleIdentifier=com.gluonhq.scenebuilder \
37+
-Bmac.CFBundleName="Scene Builder" \
38+
-Bmac.CFBundleVersion=${VERSION}

.ci/windows.bat

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
java -version
2+
3+
echo "Tag version"
4+
echo %VERSION%
5+
6+
sed -i -e "s/VERSION/%VERSION%/g" app\assets\windows\SceneBuilder-x64.iss
7+
8+
mkdir package\windows
9+
copy app\assets\windows\SceneBuilder-setup-icon.bmp package\windows\SceneBuilder-setup-icon.bmp
10+
copy app\assets\windows\SceneBuilder-x64.iss package\windows\SceneBuilder.iss
11+
12+
"%JAVA_HOME%\bin\javapackager.exe" -createjar^
13+
-appclass com.oracle.javafx.scenebuilder.app.SceneBuilderApp^
14+
-nocss2bin^
15+
-srcfiles app\build\libs\scenebuilder-%VERSION%-all.jar^
16+
-outdir dist^
17+
-outfile dist.jar
18+
19+
copy app\src\main\resources\LICENSE dist\LICENSE
20+
21+
"%JAVA_HOME%\bin\javapackager.exe" -deploy^
22+
-native exe^
23+
-outdir dist^
24+
-outfile dist^
25+
-vendor Gluon^
26+
-description "Scene Builder"^
27+
-appclass com.oracle.javafx.scenebuilder.app.SceneBuilderApp^
28+
-name SceneBuilder^
29+
-srcdir dist^
30+
-srcfiles dist.jar^
31+
-srcfiles dist.jar;LICENSE^
32+
-BappVersion=%VERSION%^
33+
-BlicenseFile=LICENSE^
34+
-Bicon=app\assets\windows\icon-windows.ico
35+
36+
37+
echo "Bundles directory contains..."
38+
dir dist\bundles\

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@ lib/
2222
scenicView.properties
2323
*.patch
2424
*.class
25+
dist/
26+
package/

.travis.yml

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# use java support.
2+
language: java
3+
4+
# required to install tools on Linux
5+
sudo: required
6+
7+
# skip install
8+
install: true
9+
10+
before_cache:
11+
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
12+
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
13+
14+
cache:
15+
directories:
16+
- "$HOME/.gradle/caches/"
17+
18+
matrix:
19+
fast_finish: true
20+
include:
21+
- os: linux
22+
dist: trusty
23+
jdk: oraclejdk8
24+
- os: osx
25+
osx_image: xcode9
26+
27+
# configure xvfb screen on linux
28+
before_script:
29+
if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
30+
export DISPLAY=:99.0;
31+
sh -e /etc/init.d/xvfb start;
32+
sleep 3;
33+
fi
34+
35+
script:
36+
- chmod +x .ci/build.sh;
37+
- sh .ci/build.sh;
38+
39+
deploy:
40+
provider: releases
41+
api_key:
42+
secure: "GdeRIB3FdguSiVIueE0N+y3D3+XE4wY9OCYnW13l0DxZxQuK9nTVl668Hek7w+jcmnYbaQ5Zn1Fl8H2Elx4uJnd6QOCFlPzaXdQoVtmKLYh95yLmECdsONHFdZmejIl5yk2c+D+Ln0/MXojo0wEW1356mPA10ixDfD2wVtrKgKcC2evH5d7vAMuOOUhBW18Y/kL7ZjYHkfj1kM0r1zczId2lELBYrURcexD3yoolSyfm6D7D/k1XY24INFT6bCGkzyp39npiIPpqhh6fSr0ljVBAn8ZUwcIpH09LK0pfJJxg4ZVb8G2l3yjo4TAmJwJFlKDyQY2NDQIDO11keJMBTqMwblSW6gKo8tApBsGeVNMoyMVw1vy0hyMPB6+NQPHuZPR2neSh8qx3o2NB+RFLn/WF6rKHtEfUxdU1kcwDLjsc35qEhz95/a2cbHkbIl4n0kDoNUlmwQULA97oICMoOeD/3Lqv+8RixE2OcqUOV224zOZp4FpPAYr36t4UZHSXQMYHE/k5tvlcENz/GOrHCs1wQOKBD040Wz7I/1k+zhS9jMaYMefNhj/l9tBmp/9CC6kn3HyG+APFl3cgSQNFhFaL0gmpRcDMsorDEo0pHibkCyoHNtXkZpWZBVxo14PfPOEClNn32ewIuuQrCYHStFXTZB8S1thcexnyXSw/OmU="
43+
file:
44+
- "dist/bundles/SceneBuilder-${TRAVIS_TAG}.deb"
45+
- "dist/bundles/SceneBuilder-${TRAVIS_TAG}.rpm"
46+
- "dist/bundles/SceneBuilder-${TRAVIS_TAG}.dmg"
47+
skip_cleanup: true
48+
overwrite: true
49+
on:
50+
tags: true
51+
repo: abhinayagarwal/scenebuilder

app/assets/linux/icon-linux.png

88.4 KB
Loading

app/assets/osx/icon-mac.icns

255 KB
Binary file not shown.
9.57 KB
Binary file not shown.
+80
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
;This file will be executed next to the application bundle image
2+
;I.e. current directory will contain folder SceneBuilder with application files
3+
[Setup]
4+
AppId={{com.oracle.javafx.scenebuilder.app}}
5+
AppName=Scene Builder
6+
AppVersion=VERSION
7+
AppVerName=SceneBuilder VERSION
8+
AppPublisher=Gluon
9+
AppComments=Scene Builder
10+
AppCopyright=Copyright (c) 2012, 2014, Oracle and/or its affiliates. Copyright (c) 2015, 2016, Gluon and/or its affiliates.
11+
;AppPublisherURL=http://java.com/
12+
;AppSupportURL=http://java.com/
13+
;AppUpdatesURL=http://java.com/
14+
15+
;Set default to: C:\Program Files instead of User\AppData:
16+
DefaultDirName={localappdata}\SceneBuilder
17+
DisableStartupPrompt=Yes
18+
19+
;Enable dir page to allow custom location:
20+
DisableDirPage=No
21+
DisableProgramGroupPage=Yes
22+
DisableReadyPage=Yes
23+
DisableFinishedPage=Yes
24+
DisableWelcomePage=Yes
25+
DefaultGroupName=Gluon
26+
;Optional License
27+
LicenseFile=LICENSE
28+
;WinXP or above
29+
MinVersion=0,5.1
30+
OutputBaseFilename=SceneBuilder-VERSION
31+
Compression=lzma
32+
SolidCompression=yes
33+
PrivilegesRequired=lowest
34+
SetupIconFile=SceneBuilder\SceneBuilder.ico
35+
UninstallDisplayIcon={app}\SceneBuilder.ico
36+
UninstallDisplayName=SceneBuilder
37+
WizardImageStretch=No
38+
WizardSmallImageFile=SceneBuilder-setup-icon.bmp
39+
ArchitecturesInstallIn64BitMode=x64
40+
41+
42+
[Languages]
43+
Name: "english"; MessagesFile: "compiler:Default.isl"
44+
45+
[Files]
46+
Source: "SceneBuilder\SceneBuilder.exe"; DestDir: "{app}"; Flags: ignoreversion
47+
Source: "SceneBuilder\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
48+
49+
[Icons]
50+
Name: "{group}\SceneBuilder"; Filename: "{app}\SceneBuilder.exe"; IconFilename: "{app}\SceneBuilder.ico"; Check: returnTrue()
51+
Name: "{commondesktop}\SceneBuilder"; Filename: "{app}\SceneBuilder.exe"; IconFilename: "{app}\SceneBuilder.ico"; Check: returnFalse()
52+
53+
54+
[Run]
55+
Filename: "{app}\SceneBuilder.exe"; Parameters: "-Xappcds:generatecache"; Check: returnFalse()
56+
Filename: "{app}\SceneBuilder.exe"; Description: "{cm:LaunchProgram,SceneBuilder}"; Flags: nowait postinstall skipifsilent; Check: returnTrue()
57+
Filename: "{app}\SceneBuilder.exe"; Parameters: "-install -svcName ""SceneBuilder"" -svcDesc ""Scene Builder"" -mainExe ""SceneBuilder.exe"" "; Check: returnFalse()
58+
59+
[UninstallRun]
60+
Filename: "{app}\SceneBuilder.exe "; Parameters: "-uninstall -svcName SceneBuilder -stopOnUninstall"; Check: returnFalse()
61+
62+
[Code]
63+
function returnTrue(): Boolean;
64+
begin
65+
Result := True;
66+
end;
67+
68+
function returnFalse(): Boolean;
69+
begin
70+
Result := False;
71+
end;
72+
73+
function InitializeSetup(): Boolean;
74+
begin
75+
// Possible future improvements:
76+
// if version less or same => just launch app
77+
// if upgrade => check if same app is running and wait for it to exit
78+
// Add pack200/unpack200 support?
79+
Result := True;
80+
end;

app/assets/windows/icon-windows.ico

279 KB
Binary file not shown.

appveyor.yml

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# build version
2+
version: '{build}'
3+
4+
# environment settings
5+
environment:
6+
matrix:
7+
- JAVA_HOME: C:\Program Files\Java\jdk1.8.0
8+
9+
# install required tools
10+
install:
11+
- cmd: echo %JAVA_HOME%
12+
- cmd: choco install -y InnoSetup
13+
14+
# build and install artifacts
15+
build_script:
16+
- cmd: .ci\build.bat
17+
18+
artifacts:
19+
- path: dist\bundles\SceneBuilder-%APPVEYOR_REPO_TAG_NAME%.exe
20+
name: windows-scenebuilder
21+
22+
deploy:
23+
- provider: GitHub
24+
name: production
25+
auth_token:
26+
secure: 90W2MMGEXPRS62tHmCQn1lhJhYnM1yQ754ssBft0pSAe0Go1sFDZQ3Jp5JusSIxF
27+
artifact: windows-scenebuilder
28+
on:
29+
appveyor_repo_tag: true

build.gradle

+10-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import org.apache.tools.ant.filters.EscapeUnicode
2-
31
apply plugin: 'base'
42

53
ext.getStringProperty = { name, defaultValue ->
@@ -15,7 +13,7 @@ subprojects {
1513
apply plugin: 'java'
1614

1715
group = 'com.gluonhq.scenebuilder'
18-
version = getStringProperty('VERSION', '8.5.0-SNAPSHOT')
16+
version = project.findProperty('VERSION') ?: '8.5.0-SNAPSHOT'
1917

2018
ext.buildDateFormat = version.endsWith('-SNAPSHOT') ? 'yyyy-MM-dd HH:mm:ss' : 'yyyy-MM-dd'
2119

@@ -53,6 +51,15 @@ subprojects {
5351
testCompile 'junit:junit:4.12'
5452
testCompile 'org.assertj:assertj-core:3.2.0'
5553
}
54+
55+
test {
56+
// -PexcludeTests="Test1,Test2"
57+
if (project.hasProperty('excludeTests')) {
58+
project.properties['excludeTests']?.replaceAll(' ', '')?.split('[,;]')?.each {
59+
exclude "**/${it}.class"
60+
}
61+
}
62+
}
5663
}
5764

5865
clean {

0 commit comments

Comments
 (0)