Steps
successpipeline setup1s
successsetup13s
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Teletype
debconf: unable to initialize frontend: Teletype
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Noninteractive
info: downloading 2 components
info: downloading component rust-std
/tmp/trunk.tar.gz: OK
WARNING: The SDK Manager CLI tool (sdkmanager) is deprecated. Use Android CLI instead.
The 'android' binary can also be found in the cmdline-tools directory, and 'android sdk' is the replacement for 'sdkmanager'.
To learn more about the Android CLI and how to use it, see the documentation (https://d.android.com/tools/agents/android-cli)
trunk 0.21.14
rustfmt 1.10.0-stable (b940084d7e 2026-09-28)
clippy 0.1.99 (b940084d7e 2026-09-28)
openjdk version "21.0.12.1" 2026-08-18
OpenJDK Runtime Environment (build 21.0.12.1+1-1-deb13u1-Debian)
OpenJDK 64-Bit Server VM (build 21.0.12.1+1-1-deb13u1-Debian, mixed mode, sharing)
successlint1s
Checking api v0.1.0 (/ci/build/project/crates/api)
Checking web v0.1.0 (/ci/build/project/web)
Checking server v0.1.0 (/ci/build/project/crates/server)
Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.52s
warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
successtest3s
Compiling api v0.1.0 (/ci/build/project/crates/api)
Compiling web v0.1.0 (/ci/build/project/web)
Compiling server v0.1.0 (/ci/build/project/crates/server)
Finished `test` profile [unoptimized + debuginfo] target(s) in 1.76s
warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
Running unittests src/lib.rs (/ci/cache/target/debug/deps/api-2631e2177a757cec)
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Running unittests src/main.rs (/ci/cache/target/debug/deps/otserver-4448101ce1596c89)
running 25 tests
test auth::tests::credential_changes_need_a_recent_sign_in ... ok
test auth::tests::ipv6_addresses_group_by_64 ... ok
test auth::tests::forwarded_ip_takes_the_entry_the_proxy_wrote ... ok
test auth::tests::limiter_locks_after_max_failures ... ok
test routes::tests::cells_stay_near_and_stick_through_noise ... ok
test routes::tests::coarse_points_hide_motion ... ok
test device::tests::a_code_needs_its_verifier_and_works_once ... ok
test routes::tests::point_validation ... ok
test tests::retention_never_exceeds_the_server_limit ... ok
test tests::public_url_is_an_origin ... ok
test tests::trail_columns_merge_into_one ... ok
test routes::tests::two_admins_cannot_demote_each_other ... ok
test tests::retention_keeps_each_devices_newest_point ... ok
test tests::migrations_keep_old_points ... ok
test routes::tests::huge_ranges_are_refused ... ok
test device::tests::a_code_dies_with_its_session ... ok
test guest::tests::password_links_need_the_key ... ok
test routes::tests::people_respects_share_expiry ... ok
test routes::tests::people_shows_only_shared_devices ... ok
test auth::tests::a_name_locks_across_addresses_but_not_for_known_ones ... ok
test tests::reset_removes_every_other_way_in ... ok
test tests::cells_fill_in_time_order_and_precisions_round_up ... ok
test routes::tests::coarse_tracks_cover_whole_buckets_only ... ok
test tests::first_user_is_admin ... ok
test auth::tests::password_roundtrip ... ok
test result: ok. 25 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.01s
Running unittests src/main.rs (/ci/cache/target/debug/deps/web-b70a2e4a9416d0a4)
running 2 tests
test i18n::tests::keys_with_values_match ... ok
test i18n::tests::german_texts_keep_every_value ... ok
test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
Doc-tests api
running 0 tests
test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
successbuild8s
2026-10-05T09:37:01.981150Z INFO Starting trunk 0.21.14
2026-10-05T09:37:01.981371Z INFO starting build
Compiling api v0.1.0 (/ci/build/project/crates/api)
Compiling web v0.1.0 (/ci/build/project/web)
Finished `release` profile [optimized] target(s) in 4.25s
warning: the following packages contain code that will be rejected by a future version of Rust: proc-macro-error2 v2.0.1
note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
2026-10-05T09:37:07.410736Z INFO applying new distribution
2026-10-05T09:37:07.411502Z INFO success
Compiling api v0.1.0 (/ci/build/project/crates/api)
Compiling server v0.1.0 (/ci/build/project/crates/server)
Finished `release` profile [optimized] target(s) in 2.84s
successandroid12s
To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.8.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.
Daemon will be stopped at the end of the build
Calculating task graph as no cached configuration is available for tasks: testDebugUnitTest assembleDebug
> Task :app:generateDebugAssets UP-TO-DATE
> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild UP-TO-DATE
> Task :app:preDebugUnitTestBuild UP-TO-DATE
> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
> Task :app:javaPreCompileDebug FROM-CACHE
> Task :app:desugarDebugFileDependencies FROM-CACHE
> Task :app:generateDebugGlobalSynthetics FROM-CACHE
> Task :app:javaPreCompileDebugUnitTest FROM-CACHE
> Task :app:extractDeepLinksDebug FROM-CACHE
> Task :app:createDebugCompatibleScreenManifests
> Task :app:writeDebugAppMetadata
> Task :app:mapDebugSourceSetPaths
> Task :app:checkDebugAarMetadata
> Task :app:writeDebugSigningConfigVersions
> Task :app:checkDebugDuplicateClasses
> Task :app:generateDebugResources
> Task :app:processDebugNavigationResources
> Task :app:mergeDebugAssets
> Task :app:mergeDebugJniLibFolders
> Task :app:compileDebugNavigationResources FROM-CACHE
> Task :app:processDebugMainManifest FROM-CACHE
> Task :app:compressDebugAssets FROM-CACHE
> Task :app:mergeLibDexDebug FROM-CACHE
> Task :app:processDebugManifest FROM-CACHE
> Task :app:processDebugManifestForPackage FROM-CACHE
> Task :app:mergeDebugNativeLibs NO-SOURCE
> Task :app:stripDebugDebugSymbols NO-SOURCE
> Task :app:mergeExtDexDebug FROM-CACHE
> Task :app:packageDebugResources
> Task :app:parseDebugLocalResources
> Task :app:mergeDebugResources
> Task :app:generateDebugRFile
> Task :app:validateSigningDebug
> Task :app:processDebugResources
> Task :app:compileDebugKotlin
w: file:///ci/build/project/android/app/src/main/java/org/opentracker/Outbox.kt:22:78 Type argument for reified type parameter 'T' was inferred to the intersection of ['Comparable<*>' & 'Serializable']. Reification of an intersection type results in the common supertype being used. This may lead to subtle issues and an explicit type argument is encouraged. This will become an error in a future release.
> Task :app:compileDebugJavaWithJavac NO-SOURCE
> Task :app:processDebugJavaRes
> Task :app:bundleDebugClassesToCompileJar
> Task :app:bundleDebugClassesToRuntimeJar
> Task :app:mergeDebugJavaResource
> Task :app:compileDebugUnitTestKotlin
> Task :app:compileDebugUnitTestJavaWithJavac NO-SOURCE
> Task :app:processDebugUnitTestJavaRes
> Task :app:dexBuilderDebug
> Task :app:mergeProjectDexDebug
> Task :app:packageDebug
> Task :app:assembleDebug
> Task :app:createDebugApkListingFileRedirect
> Task :app:testDebugUnitTest
[Incubating] Problems report is available at: file:///ci/build/project/android/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/9.8.0/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD SUCCESSFUL in 12s
40 actionable tasks: 28 executed, 12 from cache
Configuration cache entry stored.
successandroid-lint15s
To honour the JVM settings for this build a single-use Daemon process will be forked. For more on this, please refer to https://docs.gradle.org/9.8.0/userguide/gradle_daemon.html#sec:disabling_the_daemon in the Gradle documentation.
Daemon will be stopped at the end of the build
Calculating task graph as no cached configuration is available for tasks: lintDebug
> Task :app:preBuild UP-TO-DATE
> Task :app:preDebugBuild UP-TO-DATE
> Task :app:preDebugUnitTestBuild UP-TO-DATE
> Task :app:preDebugAndroidTestBuild SKIPPED
> Task :app:createDebugCompatibleScreenManifests UP-TO-DATE
> Task :app:generateDebugResources UP-TO-DATE
> Task :app:javaPreCompileDebug UP-TO-DATE
> Task :app:extractDeepLinksDebug UP-TO-DATE
> Task :app:mapDebugSourceSetPaths UP-TO-DATE
> Task :app:checkDebugAarMetadata UP-TO-DATE
> Task :app:packageDebugResources UP-TO-DATE
> Task :app:processDebugNavigationResources UP-TO-DATE
> Task :app:compileDebugNavigationResources UP-TO-DATE
> Task :app:parseDebugLocalResources UP-TO-DATE
> Task :app:generateDebugRFile UP-TO-DATE
> Task :app:processDebugMainManifest UP-TO-DATE
> Task :app:processDebugManifest UP-TO-DATE
> Task :app:processDebugManifestForPackage UP-TO-DATE
> Task :app:mergeDebugResources UP-TO-DATE
> Task :app:extractProguardFiles
> Task :app:compileDebugKotlin UP-TO-DATE
> Task :app:compileDebugJavaWithJavac NO-SOURCE
> Task :app:processDebugResources UP-TO-DATE
> Task :app:bundleDebugClassesToCompileJar UP-TO-DATE
> Task :app:generateDebugLintReportModel
> Task :app:generateDebugUnitTestLintModel
> Task :app:generateDebugAndroidTestLintModel
> Task :app:lintAnalyzeDebugAndroidTest
> Task :app:lintAnalyzeDebugUnitTest
> Task :app:lintAnalyzeDebug
> Task :app:lintReportDebug
> Task :app:lintDebug
[Incubating] Problems report is available at: file:///ci/build/project/android/build/reports/problems/problems-report.html
Deprecated Gradle features were used in this build, making it incompatible with Gradle 10.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/9.8.0/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
BUILD SUCCESSFUL in 15s
27 actionable tasks: 9 executed, 18 up-to-date
Configuration cache entry stored.
successimage-files0s
successimage9s
[2/4] STEP 1/3: FROM scratch AS prebuilt
[2/4] STEP 2/3: COPY ci-bin/otserver /src/target/release/otserver
--> 7fe58b044925
[2/4] STEP 3/3: COPY ci-bin/web /src/web/dist
--> 28d53f6e4338
[3/4] STEP 1/1: FROM 28d53f6e4338bf0cd9b9f1912f1b5f5a82d17b19a84b6c4d16c99b1e0cc0a0af AS bin
--> 28d53f6e4338
[4/4] STEP 1/8: FROM docker.io/library/debian:trixie-slim
Trying to pull docker.io/library/debian:trixie-slim...
Getting image source signatures
Writing manifest to image destination
[4/4] STEP 2/8: RUN apt-get update && apt-get install -y --no-install-recommends libssl3t64 && rm -rf /var/lib/apt/lists/* && mkdir /data
Get:1 http://deb.debian.org/debian trixie InRelease [140 kB]
Get:2 http://deb.debian.org/debian trixie-updates InRelease [47.3 kB]
Get:3 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
Get:4 http://deb.debian.org/debian trixie/main amd64 Packages [9678 kB]
Get:5 http://deb.debian.org/debian trixie-updates/main amd64 Packages [4412 B]
Get:6 http://deb.debian.org/debian-security trixie-security/main amd64 Packages [264 kB]
Fetched 10.2 MB in 1s (12.8 MB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
openssl-provider-legacy
The following packages will be upgraded:
libssl3t64 openssl-provider-legacy
2 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 2775 kB of archives.
After this operation, 12.3 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian-security trixie-security/main amd64 openssl-provider-legacy amd64 3.5.7-1~deb13u3 [316 kB]
Get:2 http://deb.debian.org/debian-security trixie-security/main amd64 libssl3t64 amd64 3.5.7-1~deb13u3 [2458 kB]
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (Can't locate Term/ReadLine.pm in @INC (you may need to install the Term::ReadLine module) (@INC entries checked: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.40.1 /usr/local/share/perl/5.40.1 /usr/lib/x86_64-linux-gnu/perl5/5.40 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl-base /usr/lib/x86_64-linux-gnu/perl/5.40 /usr/share/perl/5.40 /usr/local/lib/site_perl) at /usr/share/perl5/Debconf/FrontEnd/Readline.pm line 8, <STDIN> line 2.)
debconf: falling back to frontend: Teletype
debconf: unable to initialize frontend: Teletype
debconf: (This frontend requires a controlling tty.)
debconf: falling back to frontend: Noninteractive
Fetched 2775 kB in 0s (22.1 MB/s)
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 4951 files and directories currently installed.)
Preparing to unpack .../openssl-provider-legacy_3.5.7-1~deb13u3_amd64.deb ...
Unpacking openssl-provider-legacy (3.5.7-1~deb13u3) over (3.5.7-1~deb13u2) ...
Setting up openssl-provider-legacy (3.5.7-1~deb13u3) ...
(Reading database ...
(Reading database ... 5%
(Reading database ... 10%
(Reading database ... 15%
(Reading database ... 20%
(Reading database ... 25%
(Reading database ... 30%
(Reading database ... 35%
(Reading database ... 40%
(Reading database ... 45%
(Reading database ... 50%
(Reading database ... 55%
(Reading database ... 60%
(Reading database ... 65%
(Reading database ... 70%
(Reading database ... 75%
(Reading database ... 80%
(Reading database ... 85%
(Reading database ... 90%
(Reading database ... 95%
(Reading database ... 100%
(Reading database ... 4951 files and directories currently installed.)
Preparing to unpack .../libssl3t64_3.5.7-1~deb13u3_amd64.deb ...
Unpacking libssl3t64:amd64 (3.5.7-1~deb13u3) over (3.5.7-1~deb13u2) ...
Setting up libssl3t64:amd64 (3.5.7-1~deb13u3) ...
Processing triggers for libc-bin (2.41-12+deb13u4) ...
--> e7bea1757268
[4/4] STEP 3/8: COPY --from=bin /src/target/release/otserver /usr/local/bin/
--> 337a15050a4a
[4/4] STEP 4/8: COPY --from=bin /src/web/dist /srv/web
--> f91c822dd344
[4/4] STEP 5/8: ENV OT_ADDR=0.0.0.0:8080 OT_DB=/data/ot.db OT_WEB_DIR=/srv/web
--> 34dc0ad8be00
[4/4] STEP 6/8: VOLUME /data
--> c2d6add67a9a
[4/4] STEP 7/8: EXPOSE 8080
--> fe7042c0a442
[4/4] STEP 8/8: ENTRYPOINT ["otserver"]
[4/4] COMMIT localhost/hf-build
--> 3a5f34da75b0
Successfully tagged localhost/hf-build:latest
3a5f34da75b0a32926d58515a4b1de5ff4de571a8b1fd55c3e460bec3873b061
hearthforge: image written
[ 6.764079] reboot: Restarting system
Pushed forge.unix-root.de/opentracker:7e418586
Pushed forge.unix-root.de/opentracker:edge
Digest sha256:40e2d8cb3c45488544f8556016df52ac12deaeaf35ee96ea7b54896221fb51e1
skippedimage-release0s
Skipped: condition not met