-
Notifications
You must be signed in to change notification settings - Fork 434
114 lines (103 loc) · 4.1 KB
/
designer.yml
File metadata and controls
114 lines (103 loc) · 4.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
name: Codename One Designer CI
on:
push:
branches:
- master
paths:
- 'CodenameOneDesigner/**'
- 'maven/css-compiler/**'
- 'maven/designer/**'
- '.github/workflows/designer.yml'
pull_request:
branches:
- master
paths:
- 'CodenameOneDesigner/**'
- 'maven/css-compiler/**'
- 'maven/designer/**'
- '.github/workflows/designer.yml'
jobs:
build-designer:
runs-on: ubuntu-latest
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Set up JDK 8
uses: actions/setup-java@v1
with:
java-version: 1.8
java-package: jdk
- name: Install build dependencies
run: sudo apt-get update && sudo apt-get install -y --no-install-recommends xvfb unzip
- name: Fetch cn1 binaries
run: |
wget https://github.com/codenameone/cn1-binaries/archive/refs/heads/master.zip
unzip master.zip -d ..
mv ../cn1-binaries-master ../cn1-binaries
mkdir -p maven/target
rm -rf maven/target/cn1-binaries
cp -R ../cn1-binaries maven/target/cn1-binaries
- name: Build Designer (pulls in codenameone-css-compiler as dep)
env:
CN1_BINARIES: ${{ github.workspace }}/maven/target/cn1-binaries
run: |
cd maven
mvn -B -pl designer -am -DskipTests -Plocal-dev-javase \
-Dmaven.javadoc.skip=true -Dcn1.binaries="${CN1_BINARIES}" install
- name: Run designer XML parser unit tests (Maven)
env:
CN1_BINARIES: ${{ github.workspace }}/maven/target/cn1-binaries
run: |
cd maven
mvn -B -pl designer -am -DunitTests=true -Dcodename1.platform=javase \
-Plocal-dev-javase -Dmaven.javadoc.skip=true -Dmaven.antrun.skip=true \
-Dcn1.binaries="${CN1_BINARIES}" \
-Dtest=SimpleXmlParserTest -DfailIfNoTests=false test
- name: Verify designer CLI CSS compilation
run: |
# The Maven-built jar-with-dependencies is a ZIP wrapper around the
# actual runnable designer_1.jar (see the antrun
# add-designer-jar-with-dependencies execution in maven/designer/pom.xml).
# Unpack and run the inner jar directly.
wrapped=$(ls maven/designer/target/codenameone-designer-*-jar-with-dependencies.jar | head -n1)
if [ -z "${wrapped}" ] || [ ! -f "${wrapped}" ]; then
echo "designer jar-with-dependencies not found" >&2
exit 1
fi
extract_dir="$(mktemp -d)"
unzip -q "${wrapped}" -d "${extract_dir}"
designer_jar="${extract_dir}/designer_1.jar"
if [ ! -f "${designer_jar}" ]; then
echo "designer_1.jar not found inside ${wrapped}" >&2
ls -la "${extract_dir}"
exit 1
fi
tmp_dir="CodenameOneDesigner/tmp-cli-test"
css_file="$tmp_dir/test.css"
l10n_dir="$tmp_dir/localization"
output_file="$tmp_dir/output.res"
mkdir -p "$l10n_dir"
cat <<'EOF' > "$css_file"
Label {
color: rgb(255, 0, 0);
}
EOF
cat <<'EOF' > "$l10n_dir/Strings.properties"
greeting=Hello from CLI
EOF
xvfb-run -a java -Dcli=true -jar "${designer_jar}" \
-css -stateless -input "$css_file" -output "$output_file" -localization "$l10n_dir"
test -s "$output_file"
- name: Verify native-themes CEF-free build
run: |
cd maven
mvn -B -pl css-compiler -am install -DskipTests -Dmaven.javadoc.skip=true -Plocal-dev-javase
cd ..
./scripts/build-native-themes.sh
test -f Themes/iOSModernTheme.res || { echo "missing Themes/iOSModernTheme.res"; exit 1; }
test -f Themes/AndroidMaterialTheme.res || { echo "missing Themes/AndroidMaterialTheme.res"; exit 1; }
- name: Upload designer jar artifact
uses: actions/upload-artifact@v4
with:
name: designer-jar
path: maven/designer/target/codenameone-designer-*-jar-with-dependencies.jar