-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
92 lines (80 loc) · 3.15 KB
/
.gitlab-ci.yml
File metadata and controls
92 lines (80 loc) · 3.15 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
variables:
# Disable the Gradle daemon. Gradle may run in a Docker container with a shared
# Docker volume containing GRADLE_USER_HOME. If the container is stopped after a job
# Gradle daemons may get killed, preventing proper clean-up of lock files in GRADLE_USER_HOME.
# Use low priority processes to avoid Gradle builds consuming all build machine resources.
GRADLE_OPTS: "-Dorg.gradle.daemon=false -Dorg.gradle.priority=low"
# Maven arguments
# --batch-mode: recommended in CI, run in non-interactive mode (disables output color)
# --show-version: strongly recommended in CI, will display the JDK and Maven versions in use.
# Very useful to be quickly sure the selected versions were the ones you think.
# --errors: Produce execution error messages, useful for plugin developers (like us).
MVN_ARGS: "--batch-mode --show-version --errors"
stages:
- build
client-java:
stage: build
tags: [ docker, linux, x64 ]
image: objectboxio/buildenv-android:2024-12-09
script:
- cd tasks/client-java
- echo "➡️ Building client-java with Gradle..."
- ./gradlew clean build
- echo "✅ Building client-java with Gradle...DONE"
- echo "➡️ Building client-java with Maven..."
- ./mvnw $MVN_ARGS compile
- echo "✅ Building client-java with Maven...DONE"
- cd ../..
artifacts:
when: always
paths:
- "**/build/reports/lint-results-debug.html"
client-android:
extends: client-java
script:
- echo "➡️ Building client-android-java..."
- cd tasks/client-android-java
- ./gradlew clean assembleDebug # Only assemble debug variant
- echo "✅ Building client-android-java...DONE"
- cd ../..
- echo "➡️ Building client-android-kotlin..."
- cd tasks/client-android-kotlin
- ./gradlew clean assembleDebug # Only assemble debug variant
- echo "✅ Building client-android-kotlin...DONE"
- cd ../..
client-swift:
stage: build
tags: [mac, xcode]
script:
- cd tasks/client-swift
# A simulator named "iPhone 11" is configured on the build machine
- xcodebuild clean build -scheme client-swift-ios -destination 'platform=iOS Simulator,name=iPhone 11'
- xcodebuild build -scheme client-swift-macos -destination 'platform=macOS'
.client-cpp:
stage: build
script:
- cd tasks/client-cpp && ./build.sh
- printf "new \"Buy bananas\"\nls\nexit" | build/objectbox-examples-tasks-sync
# Not using matrix build for nicer job names
.client-cpp-docker:
extends: .client-cpp
tags: [ x64, docker]
client-cpp-gcc:
extends: .client-cpp-docker
image: 'objectboxio/buildenv-base:2025-06-29'
client-cpp-clang:
extends: .client-cpp-docker
image: 'objectboxio/buildenv-core:2025-07-03'
client-cpp-ubuntu24:
extends: .client-cpp-docker
image: 'objectboxio/cbuild-ubuntu24.04:2025-09-30'
client-cpp-mac:
extends: .client-cpp
tags: [mac, x64, xcode]
client-cpp-win:
extends: .client-cpp
tags: [ windows, cpp ]
script:
- cd tasks/client-cpp && ./build.sh
- cp build/_deps/objectbox-sync-download-src/lib/objectbox.dll build/Debug/ # copy objectbox.dll to the .exe
- printf "new \"Buy bananas\"\nls\nexit" | build/Debug/objectbox-examples-tasks-sync