Build Information
Failed to build Rainbow, reference master (b6d790), with Swift 6.1 for Android on 28 Sep 2026 21:32:41 UTC.
Build Command
bash -c docker run --pull=always --rm -v "checkouts-53886770-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1Build Log
========================================
RunAll
========================================
Builder version: 5.1.0
Interrupt handler set up.
========================================
Checkout
========================================
Clone URL: https://github.com/onevcat/Rainbow.git
Reference: master
Initialized empty Git repository in /host/spi-builder-workspace/.git/
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
From https://github.com/onevcat/Rainbow
* branch master -> FETCH_HEAD
* [new branch] master -> origin/master
HEAD is now at b6d790f Merge pull request #102 from onevcat/dependabot/bundler/rubyzip-3.4.0
Cloned https://github.com/onevcat/Rainbow.git
Revision (git rev-parse @):
b6d790f5487f4673fae2222d04d57ff6d6c621ea
SUCCESS checkout https://github.com/onevcat/Rainbow.git at master
========================================
Build
========================================
Selected platform: android
Swift version: 6.1
Building package at path: $PWD
https://github.com/onevcat/Rainbow.git
https://github.com/onevcat/Rainbow.git
WARNING: environment variable SUPPRESS_SWIFT_6_FLAGS is not set
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-53886770-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 -Xswiftc -Xfrontend -Xswiftc -stats-output-dir -Xswiftc -Xfrontend -Xswiftc .stats -Xswiftc -strict-concurrency=complete -Xswiftc -enable-upcoming-feature -Xswiftc StrictConcurrency -Xswiftc -enable-upcoming-feature -Xswiftc DisableOutwardActorInference -Xswiftc -enable-upcoming-feature -Xswiftc GlobalActorIsolatedTypesUsability -Xswiftc -enable-upcoming-feature -Xswiftc InferSendableFromCaptures 2>&1
android-6.1-latest: Pulling from saguaro1/spi-images
Digest: sha256:a7f4f752e160f6cbd9e0c26490aa43ccd5312d524c4c6d77f8b144559b526afa
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.1-latest
Building for debugging...
[0/7] Write sources
[2/7] Write swift-version-24593BA9C3E375BF.txt
error: emit-module command failed with exit code 1 (use -v to see invocation)
[4/22] Emitting module Rainbow
/host/spi-builder-workspace/Sources/OutputTarget.swift:46:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
44 |
45 | /// Detected output target by current environment.
46 | static var current: OutputTarget = {
| |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 | #if os(Windows)
48 | // Windows terminals support ANSI escape codes in modern versions (Windows 10+)
/host/spi-builder-workspace/Sources/OutputTarget.swift:57:58: error: cannot find 'isatty' in scope
55 | // Check if we are in any term env and the output is a tty.
56 | let termType = getEnvValue("TERM")
57 | if let t = termType, t.lowercased() != "dumb" && isatty(fileno(stdout)) != 0 {
| `- error: cannot find 'isatty' in scope
58 | return .console
59 | }
/host/spi-builder-workspace/Sources/Rainbow.swift:110:23: warning: static property 'outputTarget' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
108 | /// Output target for `Rainbow`. `Rainbow` should detect correct target itself, so you rarely need to set it.
109 | /// However, if you want the colorized string to be different, or the detection is not correct, you can set it manually.
110 | public static var outputTarget = OutputTarget.current
| |- warning: static property 'outputTarget' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'outputTarget' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'outputTarget' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
111 |
112 | static var environment = ProcessInfo.processInfo.environment
/host/spi-builder-workspace/Sources/Rainbow.swift:112:16: warning: static property 'environment' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
110 | public static var outputTarget = OutputTarget.current
111 |
112 | static var environment = ProcessInfo.processInfo.environment
| |- warning: static property 'environment' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'environment' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'environment' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
113 | static func hasValidValueInEnvironment(_ key: String) -> Bool {
114 | guard !key.isEmpty, let value = environment[key] else {
/host/spi-builder-workspace/Sources/Rainbow.swift:133:23: warning: static property 'enabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
131 | /// set and `FORCE_COLOR` not set to a valid value ("0" or empty value is treated as "unset". `FORCE_COLOR` has
132 | /// higher priority than `NO_COLOR` if set).
133 | public static var enabled = environmentAvailable
| |- warning: static property 'enabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enabled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enabled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
134 |
135 | public static func extractEntry(for string: String) -> Entry {
[5/23] Compiling Rainbow String+ConditionalStyling.swift
[6/23] Compiling Rainbow String+Rainbow.swift
[7/23] Compiling Rainbow StringGenerator.swift
[8/23] Compiling Rainbow Style.swift
[9/23] Compiling Rainbow Color.swift
[10/23] Compiling Rainbow ColorApproximation.swift
[11/23] Compiling Rainbow StyledStringBuilder.swift
[12/23] Compiling Rainbow OutputTarget.swift
/host/spi-builder-workspace/Sources/OutputTarget.swift:46:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
44 |
45 | /// Detected output target by current environment.
46 | static var current: OutputTarget = {
| |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 | #if os(Windows)
48 | // Windows terminals support ANSI escape codes in modern versions (Windows 10+)
/host/spi-builder-workspace/Sources/OutputTarget.swift:57:58: error: cannot find 'isatty' in scope
55 | // Check if we are in any term env and the output is a tty.
56 | let termType = getEnvValue("TERM")
57 | if let t = termType, t.lowercased() != "dumb" && isatty(fileno(stdout)) != 0 {
| `- error: cannot find 'isatty' in scope
58 | return .console
59 | }
/host/spi-builder-workspace/Sources/Rainbow.swift:110:23: warning: static property 'outputTarget' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
108 | /// Output target for `Rainbow`. `Rainbow` should detect correct target itself, so you rarely need to set it.
109 | /// However, if you want the colorized string to be different, or the detection is not correct, you can set it manually.
110 | public static var outputTarget = OutputTarget.current
| |- warning: static property 'outputTarget' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'outputTarget' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'outputTarget' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
111 |
112 | static var environment = ProcessInfo.processInfo.environment
/host/spi-builder-workspace/Sources/Rainbow.swift:112:16: warning: static property 'environment' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
110 | public static var outputTarget = OutputTarget.current
111 |
112 | static var environment = ProcessInfo.processInfo.environment
| |- warning: static property 'environment' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'environment' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'environment' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
113 | static func hasValidValueInEnvironment(_ key: String) -> Bool {
114 | guard !key.isEmpty, let value = environment[key] else {
/host/spi-builder-workspace/Sources/Rainbow.swift:133:23: warning: static property 'enabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
131 | /// set and `FORCE_COLOR` not set to a valid value ("0" or empty value is treated as "unset". `FORCE_COLOR` has
132 | /// higher priority than `NO_COLOR` if set).
133 | public static var enabled = environmentAvailable
| |- warning: static property 'enabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enabled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enabled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
134 |
135 | public static func extractEntry(for string: String) -> Entry {
[13/23] Compiling Rainbow Rainbow.swift
/host/spi-builder-workspace/Sources/OutputTarget.swift:46:16: warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
44 |
45 | /// Detected output target by current environment.
46 | static var current: OutputTarget = {
| |- warning: static property 'current' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'current' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'current' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
47 | #if os(Windows)
48 | // Windows terminals support ANSI escape codes in modern versions (Windows 10+)
/host/spi-builder-workspace/Sources/OutputTarget.swift:57:58: error: cannot find 'isatty' in scope
55 | // Check if we are in any term env and the output is a tty.
56 | let termType = getEnvValue("TERM")
57 | if let t = termType, t.lowercased() != "dumb" && isatty(fileno(stdout)) != 0 {
| `- error: cannot find 'isatty' in scope
58 | return .console
59 | }
/host/spi-builder-workspace/Sources/Rainbow.swift:110:23: warning: static property 'outputTarget' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
108 | /// Output target for `Rainbow`. `Rainbow` should detect correct target itself, so you rarely need to set it.
109 | /// However, if you want the colorized string to be different, or the detection is not correct, you can set it manually.
110 | public static var outputTarget = OutputTarget.current
| |- warning: static property 'outputTarget' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'outputTarget' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'outputTarget' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
111 |
112 | static var environment = ProcessInfo.processInfo.environment
/host/spi-builder-workspace/Sources/Rainbow.swift:112:16: warning: static property 'environment' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
110 | public static var outputTarget = OutputTarget.current
111 |
112 | static var environment = ProcessInfo.processInfo.environment
| |- warning: static property 'environment' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'environment' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'environment' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
113 | static func hasValidValueInEnvironment(_ key: String) -> Bool {
114 | guard !key.isEmpty, let value = environment[key] else {
/host/spi-builder-workspace/Sources/Rainbow.swift:133:23: warning: static property 'enabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
131 | /// set and `FORCE_COLOR` not set to a valid value ("0" or empty value is treated as "unset". `FORCE_COLOR` has
132 | /// higher priority than `NO_COLOR` if set).
133 | public static var enabled = environmentAvailable
| |- warning: static property 'enabled' is not concurrency-safe because it is nonisolated global shared mutable state; this is an error in the Swift 6 language mode
| |- note: convert 'enabled' to a 'let' constant to make 'Sendable' shared state immutable
| |- note: add '@MainActor' to make static property 'enabled' part of global actor 'MainActor'
| `- note: disable concurrency-safety checks if accesses are protected by an external synchronization mechanism
134 |
135 | public static func extractEntry(for string: String) -> Entry {
[14/23] Compiling Rainbow HSLColorConverter.swift
[15/23] Compiling Rainbow ModesExtractor.swift
[16/23] Compiling Rainbow ConditionalStyleBuilder.swift
[17/23] Compiling Rainbow ControlCode.swift
[18/23] Compiling Rainbow BackgroundColor.swift
[19/23] Compiling Rainbow CodesParser.swift
Running build ...
bash -c docker run --pull=always --rm -v "checkouts-53886770-1":/host -w "$PWD" -e JAVA_HOME="/root/.sdkman/candidates/java/current" -e SPI_BUILD="1" -e SPI_PROCESSING="1" registry.gitlab.com/saguaro1/spi-images:android-6.1-latest swift build --swift-sdk aarch64-unknown-linux-android24 2>&1
android-6.1-latest: Pulling from saguaro1/spi-images
Digest: sha256:a7f4f752e160f6cbd9e0c26490aa43ccd5312d524c4c6d77f8b144559b526afa
Status: Image is up to date for registry.gitlab.com/saguaro1/spi-images:android-6.1-latest
[0/1] Planning build
Building for debugging...
[0/5] Write swift-version-24593BA9C3E375BF.txt
[2/20] Compiling Rainbow StringGenerator.swift
[3/20] Compiling Rainbow Style.swift
[4/21] Compiling Rainbow HSLColorConverter.swift
[5/21] Compiling Rainbow ModesExtractor.swift
[6/21] Compiling Rainbow String+ConditionalStyling.swift
[7/21] Compiling Rainbow String+Rainbow.swift
[8/21] Compiling Rainbow OutputTarget.swift
/host/spi-builder-workspace/Sources/OutputTarget.swift:57:58: error: cannot find 'isatty' in scope
55 | // Check if we are in any term env and the output is a tty.
56 | let termType = getEnvValue("TERM")
57 | if let t = termType, t.lowercased() != "dumb" && isatty(fileno(stdout)) != 0 {
| `- error: cannot find 'isatty' in scope
58 | return .console
59 | }
[9/21] Compiling Rainbow Rainbow.swift
/host/spi-builder-workspace/Sources/OutputTarget.swift:57:58: error: cannot find 'isatty' in scope
55 | // Check if we are in any term env and the output is a tty.
56 | let termType = getEnvValue("TERM")
57 | if let t = termType, t.lowercased() != "dumb" && isatty(fileno(stdout)) != 0 {
| `- error: cannot find 'isatty' in scope
58 | return .console
59 | }
[10/21] Compiling Rainbow ConditionalStyleBuilder.swift
[11/21] Compiling Rainbow ControlCode.swift
error: emit-module command failed with exit code 1 (use -v to see invocation)
[12/21] Compiling Rainbow BackgroundColor.swift
[13/21] Compiling Rainbow CodesParser.swift
[14/21] Compiling Rainbow Color.swift
[15/21] Compiling Rainbow ColorApproximation.swift
[16/21] Emitting module Rainbow
/host/spi-builder-workspace/Sources/OutputTarget.swift:57:58: error: cannot find 'isatty' in scope
55 | // Check if we are in any term env and the output is a tty.
56 | let termType = getEnvValue("TERM")
57 | if let t = termType, t.lowercased() != "dumb" && isatty(fileno(stdout)) != 0 {
| `- error: cannot find 'isatty' in scope
58 | return .console
59 | }
[17/21] Compiling Rainbow StyledStringBuilder.swift
BUILD FAILURE 6.1 android