S19: share workstation runner and move agent workflows to landscape
This commit is contained in:
@@ -3,11 +3,18 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
/** Source-launcher startup probe; uses the service's configured DOCKER_HOST. */
|
||||
class WaitForDocker {
|
||||
public static void main(String[] args) throws Exception {
|
||||
/**
|
||||
* Waits for the configured Docker daemon before allowing the runner service to start.
|
||||
*
|
||||
* @param args optional timeout in seconds, from 1 through 300; defaults to 120
|
||||
* @throws Exception if the timeout is invalid or the Docker probe cannot run
|
||||
* @implNote Exits nonzero if Docker does not become ready before the deadline.
|
||||
*/
|
||||
public static void main(final String... args) throws Exception {
|
||||
long seconds = args.length == 0 ? 120 : Long.parseLong(args[0]);
|
||||
if (seconds < 1 || seconds > 300) throw new IllegalArgumentException("Timeout must be 1–300 seconds");
|
||||
long deadline = System.nanoTime() + Duration.ofSeconds(seconds).toNanos();
|
||||
System.out.println("Waiting for the configured Docker engine...");
|
||||
IO.println("Waiting for the configured Docker engine...");
|
||||
while (System.nanoTime() < deadline) {
|
||||
Process process = new ProcessBuilder("docker", "info", "--format", "{{.ServerVersion}}")
|
||||
.redirectOutput(ProcessBuilder.Redirect.DISCARD)
|
||||
@@ -17,7 +24,7 @@ class WaitForDocker {
|
||||
long remaining = Math.max(1, deadline - System.nanoTime());
|
||||
if (process.waitFor(Math.min(remaining, TimeUnit.SECONDS.toNanos(5)), TimeUnit.NANOSECONDS)
|
||||
&& process.exitValue() == 0) {
|
||||
System.out.println("Docker is available; starting the Gitea runner.");
|
||||
IO.println("Docker is available; starting the Gitea runner.");
|
||||
return;
|
||||
}
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user