LUCIRUNSDOCSPUBLIC CI
Run summary

Run passed.

1 passed.

bugabinga.net / push

fix(shell): generate test timestamps without gnu date

··
Result output · shell
[luci] step 1/3: apk --root $PWD/.apk --initdb --keys-dir /etc/apk/keys --repositories-file /etc/apk/repositories --no-scripts --no-chown add --no-cache bash git shfmt shellcheck
fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/community/x86_64/APKINDEX.tar.gz
(1/28) Installing musl (1.2.5-r12)
(2/28) Installing busybox (1.37.0-r20)
(3/28) Installing busybox-binsh (1.37.0-r20)
(4/28) Installing ncurses-terminfo-base (6.5_p20250503-r0)
(5/28) Installing libncursesw (6.5_p20250503-r0)
(6/28) Installing readline (8.2.13-r1)
(7/28) Installing bash (5.2.37-r0)
(8/28) Installing ca-certificates-bundle (20260909-r0)
(9/28) Installing brotli-libs (1.1.0-r2)
(10/28) Installing c-ares (1.34.8-r0)
(11/28) Installing libcrypto3 (3.5.8-r0)
(12/28) Installing libunistring (1.3-r0)
(13/28) Installing libidn2 (2.3.7-r0)
(14/28) Installing nghttp2-libs (1.69.0-r0)
(15/28) Installing libpsl (0.21.5-r3)
(16/28) Installing libssl3 (3.5.8-r0)
(17/28) Installing ssl_client (1.37.0-r20)
(18/28) Installing zlib (1.3.2-r0)
(19/28) Installing zstd-libs (1.5.7-r0)
(20/28) Installing libcurl (8.14.1-r3)
(21/28) Installing libexpat (2.8.5-r0)
(22/28) Installing pcre2 (10.46-r0)
(23/28) Installing git (2.49.1-r0)
(24/28) Installing git-init-template (2.49.1-r0)
(25/28) Installing libffi (3.4.8-r0)
(26/28) Installing gmp (6.3.0-r3)
(27/28) Installing shellcheck (0.10.0-r2)
(28/28) Installing shfmt (3.11.0-r5)
ERROR: 46 errors updating directory permissions
OK: 42 MiB in 28 packages
[luci] step 1/3 done in 2s
[luci] step 2/3: export PATH=$PWD/.apk/bin:$PWD/.apk/usr/bin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib; bash --version && git --version && shfmt --version && shellcheck --version
GNU bash, version 5.2.37(1)-release (x86_64-alpine-linux-musl)
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
git version 2.49.1
3.11.0-5
ShellCheck - shell script analysis tool
version: 0.10.0
license: GNU General Public License, version 3
website: https://www.shellcheck.net
[luci] step 2/3 done in 0s
[luci] step 3/3: PATH=$PWD/.apk/bin:$PWD/.apk/usr/bin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib scripts/local/test-garbage-collection.sh && scripts/local/shell-check.sh read
garbage collection test passed
maintenance check test passed
[luci] step 3/3 done in 4s

Complete raw log

Passed · 1 executions
PASSEDshell6s

Execution configuration

Imagedocker.io/library/alpine:3.22.0

Matrixnone

Triggerpush

Commands

apk --root $PWD/.apk --initdb --keys-dir /etc/apk/keys --repositories-file /etc/apk/repositories --no-scripts --no-chown add --no-cache bash git shfmt shellcheck
export PATH=$PWD/.apk/bin:$PWD/.apk/usr/bin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib; bash --version && git --version && shfmt --version && shellcheck --version
PATH=$PWD/.apk/bin:$PWD/.apk/usr/bin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib scripts/local/test-garbage-collection.sh && scripts/local/shell-check.sh read
Job source · .ci/shell.kdl
job "shell" {
image "docker.io/library/alpine:3.22.0"run "apk --root $PWD/.apk --initdb --keys-dir /etc/apk/keys --repositories-file /etc/apk/repositories --no-scripts --no-chown add --no-cache bash git shfmt shellcheck"run "export PATH=$PWD/.apk/bin:$PWD/.apk/usr/bin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib; bash --version && git --version && shfmt --version && shellcheck --version"run "PATH=$PWD/.apk/bin:$PWD/.apk/usr/bin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib scripts/local/test-garbage-collection.sh && scripts/local/shell-check.sh read"trigger {
push {
branch "trunk"include "**/*.sh"include "*.sh"include "scripts/local/shell-check.sh"include ".ci/shell.kdl"		}	}}
step timing
StepCommandTime
1/3apk --root $PWD/.apk --initdb --keys-dir /etc/apk/keys --repositories-file /etc/apk/repositories --no-scripts --no-chown add --no-cache bash git shfmt shellcheck2s
2/3export PATH=$PWD/.apk/bin:$PWD/.apk/usr/bin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib; bash --version && git --version && shfmt --version && shellcheck --version0s
3/3PATH=$PWD/.apk/bin:$PWD/.apk/usr/bin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib scripts/local/test-garbage-collection.sh && scripts/local/shell-check.sh read4s

Complete raw log

Log tail
[luci] step 1/3: apk --root $PWD/.apk --initdb --keys-dir /etc/apk/keys --repositories-file /etc/apk/repositories --no-scripts --no-chown add --no-cache bash git shfmt shellcheck
fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.22/community/x86_64/APKINDEX.tar.gz
(1/28) Installing musl (1.2.5-r12)
(2/28) Installing busybox (1.37.0-r20)
(3/28) Installing busybox-binsh (1.37.0-r20)
(4/28) Installing ncurses-terminfo-base (6.5_p20250503-r0)
(5/28) Installing libncursesw (6.5_p20250503-r0)
(6/28) Installing readline (8.2.13-r1)
(7/28) Installing bash (5.2.37-r0)
(8/28) Installing ca-certificates-bundle (20260909-r0)
(9/28) Installing brotli-libs (1.1.0-r2)
(10/28) Installing c-ares (1.34.8-r0)
(11/28) Installing libcrypto3 (3.5.8-r0)
(12/28) Installing libunistring (1.3-r0)
(13/28) Installing libidn2 (2.3.7-r0)
(14/28) Installing nghttp2-libs (1.69.0-r0)
(15/28) Installing libpsl (0.21.5-r3)
(16/28) Installing libssl3 (3.5.8-r0)
(17/28) Installing ssl_client (1.37.0-r20)
(18/28) Installing zlib (1.3.2-r0)
(19/28) Installing zstd-libs (1.5.7-r0)
(20/28) Installing libcurl (8.14.1-r3)
(21/28) Installing libexpat (2.8.5-r0)
(22/28) Installing pcre2 (10.46-r0)
(23/28) Installing git (2.49.1-r0)
(24/28) Installing git-init-template (2.49.1-r0)
(25/28) Installing libffi (3.4.8-r0)
(26/28) Installing gmp (6.3.0-r3)
(27/28) Installing shellcheck (0.10.0-r2)
(28/28) Installing shfmt (3.11.0-r5)
ERROR: 46 errors updating directory permissions
OK: 42 MiB in 28 packages
[luci] step 1/3 done in 2s
[luci] step 2/3: export PATH=$PWD/.apk/bin:$PWD/.apk/usr/bin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib; bash --version && git --version && shfmt --version && shellcheck --version
GNU bash, version 5.2.37(1)-release (x86_64-alpine-linux-musl)
Copyright (C) 2022 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
git version 2.49.1
3.11.0-5
ShellCheck - shell script analysis tool
version: 0.10.0
license: GNU General Public License, version 3
website: https://www.shellcheck.net
[luci] step 2/3 done in 0s
[luci] step 3/3: PATH=$PWD/.apk/bin:$PWD/.apk/usr/bin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib scripts/local/test-garbage-collection.sh && scripts/local/shell-check.sh read
garbage collection test passed
maintenance check test passed
[luci] step 3/3 done in 4s
Continue in CLI

Nushell command · read-only.

luci log dogin-mufiv-kakat-johoj 001

Local Luci data access required · no execution.

All configuration at this revision
go.kdl @ 2f45
job "go-test" {
  image "docker.io/library/golang:1.26"
  cache "go-mod" {
    path ".go-modcache"
    key {
      file "services/luci/go.sum"
      file "services/toad/go.sum"
    }
  }
  cache "go-build" {
    path ".go-cache"
    key {
      file "services/luci/go.sum"
      file "services/toad/go.sum"
    }
  }
  run "GOTOOLCHAIN=local GOMAXPROCS=2 GOFLAGS=-p=2 GOMODCACHE=$PWD/.go-modcache GOCACHE=$PWD/.go-cache scripts/local/go.sh check read services/luci"
  run "GOTOOLCHAIN=local GOMAXPROCS=2 GOFLAGS=-p=2 GOMODCACHE=$PWD/.go-modcache GOCACHE=$PWD/.go-cache scripts/local/go.sh check read services/toad"
  trigger {
    push {
      branch "trunk"
      include "services/luci/**"
      include "services/toad/**"
      include "scripts/local/go.sh"
      include "scripts/local/check.sh"
      include "scripts/local/check-staged.sh"
      include "scripts/local/verify.sh"
      include "scripts/local/test-go-tooling.sh"
      include "lefthook.yml"
      include "justfile"
      include ".ci/**"
    }
  }
}

job "go-race" {
  image "docker.io/library/golang:1.26"
  cache "go-mod" {
    path ".go-modcache"
    key {
      file "services/luci/go.sum"
      file "services/toad/go.sum"
    }
  }
  cache "go-build" {
    path ".go-cache"
    key {
      file "services/luci/go.sum"
      file "services/toad/go.sum"
    }
  }
  run "GOTOOLCHAIN=local GOMAXPROCS=2 GOFLAGS=-p=2 GOMODCACHE=$PWD/.go-modcache GOCACHE=$PWD/.go-cache scripts/local/go.sh race services/luci"
  run "GOTOOLCHAIN=local GOMAXPROCS=2 GOFLAGS=-p=2 GOMODCACHE=$PWD/.go-modcache GOCACHE=$PWD/.go-cache scripts/local/go.sh race services/toad"
  trigger {
    push {
      branch "trunk"
      include "services/luci/**"
      include "services/toad/**"
      include "scripts/local/go.sh"
      include "scripts/local/check.sh"
      include "scripts/local/check-staged.sh"
      include "scripts/local/verify.sh"
      include "scripts/local/test-go-tooling.sh"
      include "lefthook.yml"
      include "justfile"
      include ".ci/**"
    }
  }
}

job "go-staticcheck" {
  image "docker.io/library/golang:1.26"
  cache "go-mod" {
    path ".go-modcache"
    key {
      file "services/luci/go.sum"
      file "services/toad/go.sum"
    }
  }
  cache "go-build" {
    path ".go-cache"
    key {
      file "services/luci/go.sum"
      file "services/toad/go.sum"
    }
  }
  run "GOTOOLCHAIN=local GOMAXPROCS=2 GOFLAGS=-p=2 GOMODCACHE=$PWD/.go-modcache GOCACHE=$PWD/.go-cache scripts/local/go.sh staticcheck services/luci"
  run "GOTOOLCHAIN=local GOMAXPROCS=2 GOFLAGS=-p=2 GOMODCACHE=$PWD/.go-modcache GOCACHE=$PWD/.go-cache scripts/local/go.sh staticcheck services/toad"
  trigger {
    push {
      branch "trunk"
      include "services/luci/**"
      include "services/toad/**"
      include "scripts/local/go.sh"
      include "scripts/local/check.sh"
      include "scripts/local/check-staged.sh"
      include "scripts/local/verify.sh"
      include "scripts/local/test-go-tooling.sh"
      include "lefthook.yml"
      include "justfile"
      include ".ci/**"
    }
  }
}

job "go-vuln" {
  image "docker.io/library/golang:1.26"
  cache "go-mod" {
    path ".go-modcache"
    key {
      file "services/luci/go.sum"
      file "services/toad/go.sum"
    }
  }
  cache "go-build" {
    path ".go-cache"
    key {
      file "services/luci/go.sum"
      file "services/toad/go.sum"
    }
  }
  run "GOTOOLCHAIN=local GOMAXPROCS=2 GOFLAGS=-p=2 GOMODCACHE=$PWD/.go-modcache GOCACHE=$PWD/.go-cache scripts/local/go.sh vuln services/luci"
  run "GOTOOLCHAIN=local GOMAXPROCS=2 GOFLAGS=-p=2 GOMODCACHE=$PWD/.go-modcache GOCACHE=$PWD/.go-cache scripts/local/go.sh vuln services/toad"
  trigger {
    schedule "0 3 * * 1"
  }
}

job "rust-fmt" {
  image "docker.io/library/rust:1.98.0-bookworm"
  run "rustup component add rustfmt && scripts/local/rust.sh fmt"
  trigger {
    push {
      branch "trunk"
      include "services/luigit/**"
      include "scripts/local/rust.sh"
      include "justfile"
      include ".ci/**"
    }
  }
}

job "rust-clippy" {
  image "docker.io/library/rust:1.98.0-bookworm"
  cache "cargo-luigit" {
    path ".cargo-home"
    key {
      file "services/luigit/Cargo.lock"
    }
  }
  run "rustup component add clippy && CARGO_HOME=$PWD/.cargo-home CARGO_BUILD_JOBS=2 scripts/local/rust.sh clippy"
  trigger {
    push {
      branch "trunk"
      include "services/luigit/**"
      include "scripts/local/rust.sh"
      include "justfile"
      include ".ci/**"
    }
  }
}

job "rust-test" {
  image "docker.io/library/rust:1.98.0-bookworm"
  cache "cargo-luigit" {
    path ".cargo-home"
    key {
      file "services/luigit/Cargo.lock"
    }
  }
  run "CARGO_HOME=$PWD/.cargo-home CARGO_BUILD_JOBS=2 scripts/local/rust.sh test"
  trigger {
    push {
      branch "trunk"
      include "services/luigit/**"
      include "scripts/local/rust.sh"
      include "justfile"
      include ".ci/**"
    }
  }
}
infra.kdl @ 2f45
job "infra-tofu-route" {
  image "docker.io/library/alpine:3.22.0"
  run "apk --root $PWD/.apk --initdb --keys-dir /etc/apk/keys --repositories-file /etc/apk/repositories --no-scripts --no-chown add --no-cache bash caddy git jq just opentofu"
  run "export PATH=$PWD/.apk/bin:$PWD/.apk/sbin:$PWD/.apk/usr/bin:$PWD/.apk/usr/sbin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib; command -v tofu just caddy jq git && just --version && caddy version && jq --version && scripts/local/test-verify-infra.sh && just verify infra tofu-route"
  trigger {
    push {
      branch "trunk"
      include "*.tf"
      include "**/*.tf"
      include "*.tf.json"
      include "**/*.tf.json"
      include ".terraform.lock.hcl"
      include "modules/klops/**"
      include "services/toad/**"
      include "services/luigit/**"
      include "sites/index/**"
      include "sites/personal/**"
      include "sites/genie/**"
      include "sites/pkg/**"
      include "scripts/local/klops.sh"
      include "scripts/local/deploy-toad.sh"
      include "scripts/local/build-remote-image.sh"
      include "scripts/remote/**"
      include "assets/bugabinga.min.svg"
      include "assets/nugu.css"
      include "assets/jellyfin-branding.xml"
      include "assets/registry/index-BAkATJzA.css"
      include "assets/dawarich/application-b5a7662b4bd877f1de1fe5769d2b98adfa15a8095b784d392ae1154df6f3b865.js"
      include "scripts/local/verify-infra.sh"
      include "scripts/local/verify.sh"
      include "scripts/local/test-verify-infra.sh"
      include "justfile"
      include ".ci/infra.kdl"
    }
  }
}

job "infra-quadlets" {
  image "quay.io/podman/stable:v5.6.2"
  run "scripts/local/install-just.sh $PWD/.just"
  run "PATH=$PWD/.just:$PATH; command -v git just && test -x /usr/lib/systemd/system-generators/podman-system-generator && /usr/lib/systemd/system-generators/podman-system-generator --version && just --version && scripts/local/test-verify-infra.sh && just verify infra quadlets"
  trigger {
    push {
      branch "trunk"
      include "modules/klops/quadlets/**"
      include "modules/klops/ci-quadlets/**"
      include "modules/klops/templates/ddns.container.tftpl"
      include "modules/klops/templates/luci.container.tftpl"
      include "modules/klops/templates/soft-serve.container.tftpl"
      include "services/toad/deploy/*.container"
      include "services/toad/deploy/*.network"
      include "scripts/local/verify-infra.sh"
      include "scripts/local/install-just.sh"
      include "scripts/local/verify.sh"
      include "scripts/local/test-verify-infra.sh"
      include "justfile"
      include ".ci/infra.kdl"
    }
  }
}
shell.kdl @ 2f45
job "shell" {
  image "docker.io/library/alpine:3.22.0"
  run "apk --root $PWD/.apk --initdb --keys-dir /etc/apk/keys --repositories-file /etc/apk/repositories --no-scripts --no-chown add --no-cache bash git shfmt shellcheck"
  run "export PATH=$PWD/.apk/bin:$PWD/.apk/usr/bin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib; bash --version && git --version && shfmt --version && shellcheck --version"
  run "PATH=$PWD/.apk/bin:$PWD/.apk/usr/bin:$PATH LD_LIBRARY_PATH=$PWD/.apk/lib:$PWD/.apk/usr/lib scripts/local/test-garbage-collection.sh && scripts/local/shell-check.sh read"
  trigger {
    push {
      branch "trunk"
      include "**/*.sh"
      include "*.sh"
      include "scripts/local/shell-check.sh"
      include ".ci/shell.kdl"
    }
  }
}