Test success 3m 35s
- Current runner version: 'v0.6.0'
- GITHUB_TOKEN Permissions
- Contents: read
- Metadata: read
- Packages: read
- Secret source: Actions
- Cache mode: write
- Prepare workflow directory
- Prepare all required actions
- Getting action download info
- Download action repository 'actions/checkout@v6' (SHA:d23441a48e516b6c34aea4fa41551a30e30af803)
- Download action repository 'actions/setup-go@v7' (SHA:b7ad1dad31e06c5925ef5d2fc7ad053ef454303e)
- Complete job name: Test
- Checking docker version
- ##[command]/usr/bin/docker version --format '{{.Server.APIVersion}}'
- '1.56'
- Docker daemon API version: '1.56'
- ##[command]/usr/bin/docker version --format '{{.Client.APIVersion}}'
- '1.56'
- Docker client API version: '1.56'
- Clean up resources from previous jobs
- ##[command]/usr/bin/docker ps --all --quiet --no-trunc --filter "label=fe831f"
- ##[command]/usr/bin/docker network prune --force --filter "label=fe831f"
- Create local container network
- ##[command]/usr/bin/docker network create --label fe831f github_network_fce5c4bcf66b4f778f502202ac93eeb9
- 26cb53e5af96aa13c986ce4901f11e38fd248dc10b91d737d893d523a00b6ad4
- Starting job container
- ##[command]/usr/bin/docker pull archlinux:latest
- latest: Pulling from library/archlinux
- 7450fb54bb4f: Pulling fs layer
- 62956096fa4d: Pulling fs layer
- 62956096fa4d: Download complete
- 7450fb54bb4f: Verifying Checksum
- 7450fb54bb4f: Download complete
- 7450fb54bb4f: Pull complete
- 62956096fa4d: Pull complete
- Digest: sha256:52dfbd5afb23a220d5ee92dafcb4c788d96c026ed04179890c23adef4c897fa0
- Status: Downloaded newer image for archlinux:latest
- docker.io/library/archlinux:latest
- ##[command]/usr/bin/docker create --name 315f5ac1299c4701a2ef0105f84fa5ca_archlinuxlatest_57b08d --label fe831f --workdir /__w/ermite/ermite --network github_network_fce5c4bcf66b4f778f502202ac93eeb9 -e "HOME=/github/home" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work":"/__w" -v "/home/runner/externals":"/__e":ro -v "/home/runner/work/_temp":"/__w/_temp" -v "/home/runner/work/_actions":"/__w/_actions" -v "/opt/hostedtoolcache":"/__t" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" --entrypoint "tail" archlinux:latest "-f" "/dev/null"
- 3652bb2a51a5f7299987c5c9758ec2287b9a3de5b834f9d0b660f0fece259e81
- ##[command]/usr/bin/docker start 3652bb2a51a5f7299987c5c9758ec2287b9a3de5b834f9d0b660f0fece259e81
- 3652bb2a51a5f7299987c5c9758ec2287b9a3de5b834f9d0b660f0fece259e81
- ##[command]/usr/bin/docker ps --all --filter id=3652bb2a51a5f7299987c5c9758ec2287b9a3de5b834f9d0b660f0fece259e81 --filter status=running --no-trunc --format "{{.ID}} {{.Status}}"
- 3652bb2a51a5f7299987c5c9758ec2287b9a3de5b834f9d0b660f0fece259e81 Up Less than a second
- ##[command]/usr/bin/docker inspect --format "{{range .Config.Env}}{{println .}}{{end}}" 3652bb2a51a5f7299987c5c9758ec2287b9a3de5b834f9d0b660f0fece259e81
- HOME=/github/home
- GITHUB_ACTIONS=true
- CI=true
- PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- LANG=C.UTF-8
- Waiting for all services to be ready
- Run pacman -Syu --noconfirm --needed git gcc openssh nodejs
- <U+001B>[36;1mpacman -Syu --noconfirm --needed git gcc openssh nodejs<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- :: Synchronizing package databases...
- core downloading...
- extra downloading...
- :: Starting full system upgrade...
- resolving dependencies...
- looking for conflicting packages...
- Package (27) Old Version New Version Net Change Download Size
- extra/abseil-cpp 20260817.0-2 7.15 MiB 1.35 MiB
- extra/ada 4.0.0-1 0.95 MiB 0.31 MiB
- extra/c-ares 1.34.9-1 0.54 MiB 0.24 MiB
- core/ca-certificates-mozilla 3.131-1 3.132-1 -0.01 MiB 0.37 MiB
- core/db5.3 5.3.28-7 6.48 MiB 1.26 MiB
- core/dbus 1.16.2-1 1.16.2-2 0.03 MiB 0.35 MiB
- extra/gtest 1.18.0-1 1.67 MiB 0.39 MiB
- core/iproute2 7.2.0-1 7.3.0-1 0.00 MiB 1.19 MiB
- core/libedit 20260512_3.1-1 0.27 MiB 0.11 MiB
- core/libelf 0.196-1 0.197-1 0.01 MiB 0.70 MiB
- core/libisl 0.28-1 5.90 MiB 0.94 MiB
- core/libmpc 1.4.1-1 0.19 MiB 0.09 MiB
- extra/libuv 1.52.1-2 0.64 MiB 0.26 MiB
- core/linux-api-headers 7.2-1 7.3-1 0.07 MiB 1.53 MiB
- core/perl 5.44.0-1 72.30 MiB 20.98 MiB
- extra/perl-error 0.17030-3 0.04 MiB 0.02 MiB
- extra/perl-mailtools 2.22-3 0.10 MiB 0.06 MiB
- extra/perl-timedate 2.35-1 0.15 MiB 0.06 MiB
- extra/simdjson 1:5.0.5-1 10.27 MiB 0.44 MiB
- core/systemd 262-1 262.1-1 0.03 MiB 10.68 MiB
- core/systemd-libs 262-1 262.1-1 0.01 MiB 1.44 MiB
- core/systemd-sysvcompat 262-1 262.1-1 0.00 MiB 0.01 MiB
- extra/zlib-ng 2.3.3-1 0.28 MiB 0.11 MiB
- core/gcc 16.2.1+r23+gd564253eb6c8-1 220.89 MiB 57.93 MiB
- extra/git 2.56.0-1 33.54 MiB 7.43 MiB
- extra/nodejs 26.12.0-1 64.12 MiB 17.48 MiB
- core/openssh 10.6p1-2 6.77 MiB 1.43 MiB
- Total Download Size: 127.15 MiB
- Total Installed Size: 492.13 MiB
- Net Upgrade Size: 432.39 MiB
- :: Proceed with installation? [Y/n]
- :: Retrieving packages...
- gcc-16.2.1+r23+gd564253eb6c8-1-x86_64 downloading...
- perl-5.44.0-1-x86_64 downloading...
- nodejs-26.12.0-1-x86_64 downloading...
- systemd-262.1-1-x86_64 downloading...
- git-2.56.0-1-x86_64 downloading...
- linux-api-headers-7.3-1-x86_64 downloading...
- systemd-libs-262.1-1-x86_64 downloading...
- openssh-10.6p1-2-x86_64 downloading...
- abseil-cpp-20260817.0-2-x86_64 downloading...
- db5.3-5.3.28-7-x86_64 downloading...
- iproute2-7.3.0-1-x86_64 downloading...
- libisl-0.28-1-x86_64 downloading...
- libelf-0.197-1-x86_64 downloading...
- simdjson-1:5.0.5-1-x86_64 downloading...
- gtest-1.18.0-1-x86_64 downloading...
- ca-certificates-mozilla-3.132-1-x86_64 downloading...
- dbus-1.16.2-2-x86_64 downloading...
- ada-4.0.0-1-x86_64 downloading...
- libuv-1.52.1-2-x86_64 downloading...
- c-ares-1.34.9-1-x86_64 downloading...
- libedit-20260512_3.1-1-x86_64 downloading...
- zlib-ng-2.3.3-1-x86_64 downloading...
- libmpc-1.4.1-1-x86_64 downloading...
- perl-timedate-2.35-1-any downloading...
- perl-mailtools-2.22-3-any downloading...
- perl-error-0.17030-3-any downloading...
- systemd-sysvcompat-262.1-1-x86_64 downloading...
- checking keyring...
- checking package integrity...
- loading package files...
- checking for file conflicts...
- :: Processing package changes...
- upgrading linux-api-headers...
- installing db5.3...
- installing perl...
- installing perl-error...
- installing perl-timedate...
- installing perl-mailtools...
- installing zlib-ng...
- upgrading systemd-libs...
- upgrading ca-certificates-mozilla...
- installing git...
- Optional dependencies for git
- git-zsh-completion: upstream zsh completion
- tk: gitk and git gui
- openssh: ssh transport and crypto [pending]
- man: show help with `git command --help`
- perl-libwww: git svn
- perl-term-readkey: git svn and interactive.singlekey setting
- perl-io-socket-ssl: git send-email TLS support
- perl-authen-sasl: git send-email TLS support
- perl-cgi: gitweb (web interface) support
- python: git svn & git p4
- subversion: git svn
- org.freedesktop.secrets: keyring credential helper
- libsecret: libsecret credential helper [installed]
- less: the default pager for git
- installing libisl...
- installing libmpc...
- upgrading libelf...
- installing gcc...
- Optional dependencies for gcc
- lib32-gcc-libs: for generating code for 32-bit ABI
- installing libedit...
- installing openssh...
- Optional dependencies for openssh
- libfido2: FIDO/U2F support
- sh: for ssh-copy-id and findssl.sh [installed]
- x11-ssh-askpass: input passphrase in X
- xorg-xauth: X11 forwarding
- installing gtest...
- Optional dependencies for gtest
- python: gmock generator
- installing abseil-cpp...
- installing ada...
- installing c-ares...
- installing libuv...
- installing simdjson...
- installing nodejs...
- Optional dependencies for nodejs
- npm: nodejs package manager
- upgrading dbus...
- upgrading iproute2...
- upgrading systemd...
- Creating group 'git' with GID 969.
- Creating user 'git' (git daemon user) with UID 969 and GID 969.
- upgrading systemd-sysvcompat...
- :: Running post-transaction hooks...
- ( 1/13) Creating system user accounts...
- ( 2/13) Creating temporary files...
- /usr/lib/tmpfiles.d/journal-nocow.conf:26: Failed to resolve specifier: uninitialized /etc/ detected, skipping.
- All rules containing unresolvable specifiers will be skipped.
- ( 3/13) Updating journal message catalog...
- ( 4/13) Updating udev hardware database...
- ( 5/13) Applying kernel sysctl settings...
- Skipped: Current root is not booted.
- ( 6/13) Reloading system manager configuration...
- Skipped: Current root is not booted.
- ( 7/13) Reloading user manager configuration...
- Skipped: Current root is not booted.
- ( 8/13) Enqueuing marked services...
- Skipped: Current root is not booted.
- ( 9/13) Reloading device manager configuration...
- Skipped: Current root is not booted.
- (10/13) Arming ConditionNeedsUpdate...
- (11/13) Rebuilding certificate stores...
- (12/13) Reloading system bus configuration...
- Skipped: Current root is not booted.
- (13/13) Checking for old perl modules...
- Run actions/checkout@v6
- with:
- repository: bnema/ermite
- token: ***
- ssh-strict: true
- ssh-user: git
- persist-credentials: true
- clean: true
- sparse-checkout-cone-mode: true
- fetch-depth: 1
- fetch-tags: false
- show-progress: true
- lfs: false
- submodules: false
- set-safe-directory: true
- allow-unsafe-pr-checkout: false
- env:
- GOWORK: off
- ##[command]/usr/bin/docker exec 3652bb2a51a5f7299987c5c9758ec2287b9a3de5b834f9d0b660f0fece259e81 sh -c "cat /etc/*release | grep ^ID"
- Syncing repository: bnema/ermite
- Getting Git version info
- Working directory is '/__w/ermite/ermite'
- [command]/usr/sbin/git version
- git version 2.56.0
- Temporarily overriding HOME='/__w/_temp/12f8fcbb-837c-4f34-aea9-97957c48c982' before making global git config changes
- Adding repository directory to the temporary git global config as a safe directory
- [command]/usr/sbin/git config --global --add safe.directory /__w/ermite/ermite
- Deleting the contents of '/__w/ermite/ermite'
- Determining repository object format
- Initializing the repository
- [command]/usr/sbin/git init /__w/ermite/ermite
- hint: Using 'master' as the name for the initial branch. This default branch name
- hint: will change to "main" in Git 3.0. To configure the initial branch name
- hint: to use in all of your new repositories, which will suppress this warning,
- hint: 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>
- hint:
- hint: Disable this message with "git config set advice.defaultBranchName false"
- Initialized empty Git repository in /__w/ermite/ermite/.git/
- [command]/usr/sbin/git remote add origin http://ermite:7341/bnema/ermite
- Disabling automatic garbage collection
- [command]/usr/sbin/git config --local gc.auto 0
- Setting up auth
- Removing SSH command configuration
- [command]/usr/sbin/git config --local --name-only --get-regexp core\.sshCommand
- [command]/usr/sbin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
- Removing HTTP extra header
- [command]/usr/sbin/git config --local --name-only --get-regexp http\.http\:\/\/ermite\:7341\/\.extraheader
- [command]/usr/sbin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.http\:\/\/ermite\:7341\/\.extraheader' && git config --local --unset-all 'http.http://ermite:7341/.extraheader' || :"
- Removing includeIf entries pointing to credentials config files
- [command]/usr/sbin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
- [command]/usr/sbin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
- [command]/usr/sbin/git config --file /__w/_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config http.http://ermite:7341/.extraheader AUTHORIZATION: basic ***
- [command]/usr/sbin/git config --local includeIf.gitdir:/__w/ermite/ermite/.git.path /__w/_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config
- [command]/usr/sbin/git config --local includeIf.gitdir:/__w/ermite/ermite/.git/worktrees/*.path /__w/_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config
- [command]/usr/sbin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config
- [command]/usr/sbin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config
- Fetching the repository
- [command]/usr/sbin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +d4b8b6e109afd067414e8521cb6457e5a03c34e3:refs/remotes/pull/37/merge
- From http://ermite:7341/bnema/ermite
- * [new ref] d4b8b6e109afd067414e8521cb6457e5a03c34e3 -> pull/37/merge
- Determining the checkout info
- [command]/usr/sbin/git sparse-checkout disable
- [command]/usr/sbin/git config --local --unset-all extensions.worktreeConfig
- Checking out the ref
- [command]/usr/sbin/git checkout --progress --force refs/remotes/pull/37/merge
- Note: switching to 'refs/remotes/pull/37/merge'.
- You are in 'detached HEAD' state. You can look around, make experimental
- changes and commit them, and you can discard any commits you make in this
- state without impacting any branches by switching back to a branch.
- If you want to create a new branch to retain commits you create, you may
- do so (now or later) by using -c with the switch command. Example:
- git switch -c <new-branch-name>
- Or undo this operation with:
- git switch -
- Turn off this advice by setting config variable advice.detachedHead to false
- HEAD is now at d4b8b6e Merge 2c6a32b9c950cb87d2f3cc54c7d8775d67c465ed into 80d5067c3c87121b6ade166b4a1f1ae1046df043
- [command]/usr/sbin/git log -1 --format=%H
- d4b8b6e109afd067414e8521cb6457e5a03c34e3
- Run git config --global --add safe.directory "$GITHUB_WORKSPACE"
- <U+001B>[36;1mgit config --global --add safe.directory "$GITHUB_WORKSPACE"<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- Run actions/setup-go@v7
- with:
- go-version-file: go.mod
- cache: true
- check-latest: false
- env:
- GOWORK: off
- ##[command]/usr/bin/docker exec 3652bb2a51a5f7299987c5c9758ec2287b9a3de5b834f9d0b660f0fece259e81 sh -c "cat /etc/*release | grep ^ID"
- Setup go version spec 1.27
- Found in cache @ /__t/go/1.27.3/x64
- Added go to the path
- Successfully set up Go version 1.27
- [command]/__t/go/1.27.3/x64/bin/go env GOMODCACHE
- [command]/__t/go/1.27.3/x64/bin/go env GOCACHE
- /github/home/go/pkg/mod
- /github/home/.cache/go-build
- Cache Size: ~694 MB (727701751 B)
- [command]/usr/sbin/tar -xf /__w/_temp/e042920c-674a-4de6-8e3e-a6e63d9eafb9/cache.tzst -P -C /__w/ermite/ermite --use-compress-program unzstd
- Cache restored successfully
- Cache restored from key: setup-go-Linux-x64-undefined-go-1.27.3-0e77678b13883f19db0469401fcaa9bb64e07bcbd8d593228fa6e7ebdef5d13b
- go version go1.27.3 linux/amd64
- go env
- AR='ar'
- CC='gcc'
- CGO_CFLAGS='-O2 -g'
- CGO_CPPFLAGS=''
- CGO_CXXFLAGS='-O2 -g'
- CGO_ENABLED='1'
- CGO_FFLAGS='-O2 -g'
- CGO_LDFLAGS='-O2 -g'
- CXX='g++'
- GCCGO='gccgo'
- GO111MODULE=''
- GOAMD64='v1'
- GOARCH='amd64'
- GOAUTH='netrc'
- GOBIN='/github/home/go/bin'
- GOCACHE='/github/home/.cache/go-build'
- GOCACHEPROG=''
- GODEBUG=''
- GOENV='/github/home/.config/go/env'
- GOEXE=''
- GOEXPERIMENT=''
- GOFIPS140='off'
- GOFLAGS=''
- GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build4278248316=/tmp/go-build -gno-record-gcc-switches'
- GOHOSTARCH='amd64'
- GOHOSTOS='linux'
- GOINSECURE=''
- GOMOD='/__w/ermite/ermite/go.mod'
- GOMODCACHE='/github/home/go/pkg/mod'
- GONOPROXY=''
- GONOSUMDB=''
- GOOS='linux'
- GOPACKAGESDRIVER=''
- GOPATH='/github/home/go'
- GOPRIVATE=''
- GOPROXY='https://proxy.golang.org,direct'
- GOROOT='/__t/go/1.27.3/x64'
- GOSUMDB='sum.golang.org'
- GOTELEMETRY='local'
- GOTELEMETRYDIR='/github/home/.config/go/telemetry'
- GOTMPDIR=''
- GOTOOLCHAIN='local'
- GOTOOLDIR='/__t/go/1.27.3/x64/pkg/tool/linux_amd64'
- GOVCS=''
- GOVERSION='go1.27.3'
- GOWORK='off'
- PKG_CONFIG='pkg-config'
- Run git --version
- <U+001B>[36;1mgit --version<U+001B>[0m
- <U+001B>[36;1mv=$(git --version | sed -E 's/^git version ([0-9]+)\.([0-9]+).*/\1 \2/')<U+001B>[0m
- <U+001B>[36;1mset -- $v<U+001B>[0m
- <U+001B>[36;1mif [ "$1" -lt 2 ] || { [ "$1" -eq 2 ] && [ "$2" -lt 45 ]; }; then<U+001B>[0m
- <U+001B>[36;1m echo "git 2.45 or newer is required" >&2<U+001B>[0m
- <U+001B>[36;1m exit 1<U+001B>[0m
- <U+001B>[36;1mfi<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- GOTOOLCHAIN: local
- git version 2.56.0
- Run go mod tidy
- <U+001B>[36;1mgo mod tidy<U+001B>[0m
- <U+001B>[36;1mgit diff --exit-code -- go.mod go.sum<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- GOTOOLCHAIN: local
- Run scripts/templ-drift.sh
- <U+001B>[36;1mscripts/templ-drift.sh<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- GOTOOLCHAIN: local
- (✓) Post-generation event received, processing... [ updates=0 needsRestart=true needsBrowserReload=true ]
- (✓) Complete [ updates=0 duration=255.870825ms ]
- Run go vet ./...
- <U+001B>[36;1mgo vet ./...<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- GOTOOLCHAIN: local
- Run go test -race $(go list ./... | grep -vx 'bnema.dev/ermite/internal/app')
- <U+001B>[36;1mgo test -race $(go list ./... | grep -vx 'bnema.dev/ermite/internal/app')<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- GOTOOLCHAIN: local
- ? bnema.dev/ermite/cmd/ermite [no test files]
- ? bnema.dev/ermite/gen/ermite/storage [no test files]
- ok bnema.dev/ermite/internal/adapters/blobdisk (cached)
- ok bnema.dev/ermite/internal/adapters/blobs3 (cached)
- ? bnema.dev/ermite/internal/adapters/blobtest [no test files]
- ok bnema.dev/ermite/internal/adapters/ciartifacts (cached)
- ok bnema.dev/ermite/internal/adapters/cilogs (cached)
- ok bnema.dev/ermite/internal/adapters/cisummaries (cached)
- ok bnema.dev/ermite/internal/adapters/client (cached)
- ok bnema.dev/ermite/internal/adapters/ermitegit (cached)
- ok bnema.dev/ermite/internal/adapters/eventbus (cached)
- ok bnema.dev/ermite/internal/adapters/gitcli (cached)
- ok bnema.dev/ermite/internal/adapters/githttp (cached)
- ok bnema.dev/ermite/internal/adapters/githubapi 1.435s
- ok bnema.dev/ermite/internal/adapters/githubraw (cached)
- ok bnema.dev/ermite/internal/adapters/gitpush (cached)
- ok bnema.dev/ermite/internal/adapters/gitremote (cached)
- ok bnema.dev/ermite/internal/adapters/httpserver 1.336s
- ok bnema.dev/ermite/internal/adapters/kvstore 3.506s
- ? bnema.dev/ermite/internal/adapters/oidchttp [no test files]
- ok bnema.dev/ermite/internal/adapters/rpc (cached)
- ok bnema.dev/ermite/internal/adapters/secretbox (cached)
- ok bnema.dev/ermite/internal/adapters/sigverify (cached)
- ok bnema.dev/ermite/internal/adapters/sshsig (cached)
- ok bnema.dev/ermite/internal/adapters/web 71.362s
- ok bnema.dev/ermite/internal/adapters/webauthn (cached)
- ok bnema.dev/ermite/internal/boundary 1.166s
- ok bnema.dev/ermite/internal/clientlimit (cached)
- ok bnema.dev/ermite/internal/config 1.020s
- ok bnema.dev/ermite/internal/domain (cached)
- ok bnema.dev/ermite/internal/httprange (cached)
- ok bnema.dev/ermite/internal/mediapolicy 1.019s
- ok bnema.dev/ermite/internal/ports (cached)
- ? bnema.dev/ermite/internal/ports/mocks [no test files]
- ? bnema.dev/ermite/internal/readertest [no test files]
- ok bnema.dev/ermite/internal/usecase 92.989s
- ? bnema.dev/ermite/scripts/loadtest [no test files]
- Run go tool hexcheck -fail-on warn ./...
- <U+001B>[36;1mgo tool hexcheck -fail-on warn ./...<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- GOTOOLCHAIN: local
- Run node --test 'internal/adapters/web/jstest/*.test.mjs'
- <U+001B>[36;1mnode --test 'internal/adapters/web/jstest/*.test.mjs'<U+001B>[0m
- shell: sh -e {0}
- env:
- GOWORK: off
- GOTOOLCHAIN: local
- ✔ the palette: options, selected option and aria-activedescendant follow the cursor (3.601684ms)
- ✔ the palette: a filter moves the active option, no match empties it and collapses the popup (0.45154ms)
- ✔ the palette: the file hits that arrive later get ids, roles and the active option (12.400698ms)
- ✔ Escape in the finder clears the query, keeps the focus in the field and does not reach the global handler (3.706436ms)
- ✔ the finder follows the cursor moved from outside (j / k) (1.596158ms)
- ✔ a swap that replaces the focused row puts the focus on the same control of the new one (1.28341ms)
- ✔ a swap with the focus elsewhere does not touch it (0.446269ms)
- ✔ a removed row hands the focus to the next row, else the previous, else the content (0.80846ms)
- ✔ a removed row skips the rows a filter hides (0.64916ms)
- ✔ shortcuts off: single characters do nothing, ctrl k, escape and enter still work (1.42007ms)
- ✔ shortcuts off: the checkbox, the note and the palette action show the state (0.631892ms)
- ✔ shortcuts off: another tab's change applies here (0.265841ms)
- ✔ the preference is read from storage when the page loads (3.939243ms)
- ✔ activity moves a home row up only in newest activity order, preserving focus and cursor (2.14746ms)
- ✔ mobile MR layout shortcuts preserve the saved preference until back on desktop (4.128271ms)
- ✔ dialog restores its row opener on close, but not over a replacement dialog (0.506967ms)
- ✔ listbox result wrappers have no links; Enter and delegated clicks navigate (8.137412ms)
- AC6 index of 100000 paths: 48.2 ms (target < 150, asserted < 1500)
- AC6 queries (incremental): t: 72.7 ms (94793 matches); tr: 66.7 ms (65622 matches); tre: 62.4 ms (51036 matches); tree: 53.4 ms (35414 matches); tree h: 7.0 ms (4167 matches); wbtree: 13.3 ms (7290 matches); internal handler: 6.6 ms (1042 matches); zzzq: 0.3 ms (0 matches)
- AC6 cold 'e': 52.4 ms; cold 'inthand': 5.0 ms; 'tree h' with positions of the hits: 7.9 ms (target < 30, asserted < 300)
- ✔ search: rejects what is not a subsequence (2.669633ms)
- ✔ search: ranking (0.745647ms)
- ✔ search: wbtree matches web/tree.templ (0.202929ms)
- ✔ search: basename prefix beats a deep match (0.263088ms)
- ✔ search: camelCase and separators earn bonuses (0.270408ms)
- ✔ search: several terms (2.855769ms)
- ✔ search: top k, ties by length then path (1.033411ms)
- ✔ search: incremental results equal a cold search (61.266437ms)
- ✔ positions (0.853826ms)
- ✔ non-ASCII paths: ASCII-only folding, positions index the original (0.8816ms)
- ✔ positions of a long path (greedy) (0.328529ms)
- ✔ visible (0.688943ms)
- ✔ performance on 100,000 paths (AC6) (481.806363ms)
- ✔ search and positions agree with a brute-force reference (416.580303ms)
- ✔ Enter before the results opens the top hit once they come (42.623233ms)
- ✔ the status counts the files and names the real size of a truncated list (4.860022ms)
- ✔ an Enter is dropped when the field changed since (1.619473ms)
- ✔ Enter on current results opens the cursor row, whichever way the cursor moved (2.659926ms)
- ✔ an input method composing does not drive the finder (2.276457ms)
- ✔ Escape clears the field and puts the cursor back on the tree (3.512749ms)
- ✔ label marks a surrogate pair whole (0.854705ms)
- ✔ the palette lists the file hits under its entries (5.312129ms)
- ✔ Enter typed before the frame of the query runs opens the top hit (2.059027ms)
- ✔ the palette keeps one search per frame and drops a search when it closes (2.556337ms)
- ✔ the palette drops the results of a query that is stale (3.056404ms)
- ✔ a list that fits is left alone (2.265916ms)
- ✔ the chips past the line give way to a … button that names them (1.379781ms)
- ✔ fitting again after a resize shows what fits now, with one … button (3.92908ms)
- ✔ a refit keeps the … button, and its focus (0.406554ms)
- ✔ pressing … shows every chip and moves the focus to the first one it showed (0.521128ms)
- ✔ the service worker is registered at the root scope once the page has loaded (1.725318ms)
- ✔ a refused registration is not an error (0.297924ms)
- ✔ the page leaves the browser its own install offer (0.154459ms)
- ✔ leadingZeroBits counts the zero bits at the start (1.538611ms)
- ✔ b64urlDecode reads the nonce the server sends (1.001549ms)
- ✔ the hashed bytes are nonce || ":" || decimal solution (0.382397ms)
- ✔ the solver finds the very solution of the Go vector (141.449762ms)
- ✔ the solver is independent of the batch size and reports progress (60.271384ms)
- ✔ counterClass: warn from 90 %, over above the maximum (0.281751ms)
- ✔ length counts characters, not UTF-16 units (0.146998ms)
- ✔ state: the button opens only when solved, waited and not over (0.311439ms)
- ✔ serverLength counts NFC code points like the server (0.384825ms)
- ✔ serverLength drops what the server strips and trims (0.323556ms)
- ✔ state keeps the button disabled when a title is empty or a field is over (0.160594ms)
- ✔ drafts are saved, restored once, and scoped to the path (0.379646ms)
- ✔ onPageShow reloads only for a bfcache restore (0.091698ms)
- ✔ init restores a draft and reloads on a bfcache pageshow (1.005112ms)
- ✔ sections require g and have no old t alias (3.580561ms)
- ✔ uppercase actions work with either reported casing and interrupt prefixes (8.713376ms)
- ✔ uppercase actions respect preference, fields and dialogs (2.155295ms)
- ✔ Shift+I opens inbox while issues need the g i sequence (0.866577ms)
- ✔ inbox shortcut respects preference, fields, dialogs, and owner target (2.793327ms)
- ✔ shifted punctuation still opens help and the command palette (0.825203ms)
- ✔ g prefix expires without scheduling real timers (0.896298ms)
- ✔ with nothing stored the layout is cards, and the page is as rendered (3.976694ms)
- ✔ the stored layout is applied when the page loads (1.874326ms)
- ✔ a stored value that is not a layout falls back to cards (0.555395ms)
- ✔ set stores the layout, shows it and fits the chips again (0.597002ms)
- ✔ pressing a layout button sets it; other clicks do nothing (1.193288ms)
- ✔ another tab's change applies live (0.573759ms)
- ✔ a page without .home or without ermiteFit still works (0.284437ms)
- ✔ without usable storage the choice holds for the page (1.169269ms)
- ✔ manual placeholders are not observed (12.5527ms)
- ✔ without IntersectionObserver only the automatic placeholders load (3.119309ms)
- ✔ a click on "load diff" loads that one file and does not navigate (1.399485ms)
- ✔ Enter and Space on the link load it; other keys and modified clicks do not (2.564606ms)
- ✔ a manual placeholder without an address is a plain link (1.286879ms)
- ✔ onSwap runs after a window came in (0.670221ms)
- ✔ reset drops the response of a load in flight and lets the same window load again (2.746468ms)
- ✔ reset clears the stale state; watch disconnects the previous observer (1.021564ms)
- ✔ a loaded manual file opens and takes the focus without scrolling (5.513065ms)
- ✔ a window that still holds a collapsed file keeps it closed (2.407281ms)
- ✔ a 409 makes the page stale: no later load fetches (1.800586ms)
- ✔ a failed load clears the loading mark and can be retried (1.874657ms)
- ✔ Space is prevented on the link; a held key is ignored (1.738931ms)
- ✔ a drop shorter than the delay says nothing (1.964287ms)
- ✔ a drop that lasts shows offline, once, until the stream is back (0.347347ms)
- ✔ stream teardown handles the reader cancellation that hx-sse leaves uncaught (7.151417ms)
- ✔ replacement stream URL carries the last connection id, including id-only events (0.639821ms)
- ✔ fresh home rows expire after a minute; later swaps still prepend and get a full minute (1.058257ms)
- ✔ it does nothing for a job that is over, or a page without a feed (5.069116ms)
- ✔ it opens the feed after the last line the page holds (1.042964ms)
- ✔ it appends the lines of a batch (2.434043ms)
- ✔ a piece that continues a line of an earlier batch joins that line (0.418848ms)
- ✔ it scrolls with the log only while the reader is at its end (0.384671ms)
- ✔ ci-end closes the feed, and a closed connection stays closed (0.314119ms)
- (node:11968) ExperimentalWarning: localStorage is not available because --localstorage-file was not provided.
- (Use `node --trace-warnings ...` to show where the warning was created)
- ✔ windowOf: the start of the window of a file (2.763806ms)
- ✔ menuKey: modes by number, D toggles the deletion, nothing else (1.030072ms)
- ✔ step: stays in the list (0.362694ms)
- ✔ rangeURL requires the same file, side and MR and sorts endpoints (0.634796ms)
- ✔ quote opens the thread reply and prefills and focuses its textarea (0.383064ms)
- ✔ reveal selects the split note ({"diff":"split"}), including after lazy loading (1.103007ms)
- ✔ reveal selects the split note ({"view":"split"}), including after lazy loading (0.290795ms)
- ✔ footer tabs: closed by default, toggle, switch, arrows, hash (1.682415ms)
- ✔ footer: #mr-ck syncs the checks label; its click opens Checks without toggling (1.834033ms)
- ✔ footer: panels(index) restores the open panel without touching the URL (0.552385ms)
- ✔ footer: scripts take over the panels; a fragment opens and scrolls to its panel (0.33561ms)
- ✔ touch range: first tap anchors, second tap opens the sorted range (0.295238ms)
- ✔ touch range: a different file, side or request becomes a new anchor (0.792233ms)
- ✔ mobile unified fallback only redirects single-layout split pages and preserves query/hash (0.204793ms)
- ✔ touch control: lazy links enable toolbar; ordinary taps pass through; ranges navigate and cancel (1.873719ms)
- ✔ head refresh defers a real textarea draft, resumes after emptying and blurring (0.70969ms)
- ✔ head refresh debounces bursts, serializes requests, and reruns after an in-flight push (0.427988ms)
- ✔ typing during fetch defers even manual refresh until the draft ends (0.453662ms)
- ✔ fetch failures and non-MR responses take the fallback, never apply (0.720192ms)
- ✔ viewport probe finds a stable path/side/line and restores its offset without line scans (0.825025ms)
- ✔ empty edited default and focused cform controls protect drafts (0.167878ms)
- ✔ failure during a draft keeps pending and resumes after the draft ends (0.251908ms)
- ✔ anchor restoration retains the server encoding of tilde and star paths (0.295977ms)
- ✔ changed radio remains a draft after blur (0.120611ms)
- ✔ changed checkbox remains a draft after blur (0.057068ms)
- ✔ changed start_line remains a draft after blur (0.052899ms)
- ✔ changed SELECT remains a draft after blur (0.111496ms)
- ✔ intercepted Cancel resets the entire comment form (0.511823ms)
- ✔ live refresh preserves the open button panel even when the hash points elsewhere (3.538713ms)
- ✔ the script registers exactly one submit listener and no click listener (4.13279ms)
- ✔ login: begin, get, finish with toJSON(), then home (3.621047ms)
- ✔ register: the trimmed name goes to begin only, then reload (2.51386ms)
- ✔ a submit from another form is not ours and keeps its default (0.500854ms)
- ✔ busy: aria-busy, the waiting text, and a double submit makes one begin (9.425036ms)
- ✔ a double submit of the add form makes one begin (1.173417ms)
- ✔ after a failure the page is free for another try (0.790411ms)
- ✔ on failure the button is enabled again, not busy, and has the focus (0.562557ms)
- ✔ on success the button stays busy and disabled, without stealing focus (0.480388ms)
- ✔ begin refused: the server reason is shown, nothing else is called (0.474323ms)
- ✔ a 400 from register/begin focuses the name field (0.55554ms)
- ✔ other refusals of register give the focus back to the button (1.017021ms)
- ✔ a 400 at begin on the login page focuses the button: there is no name (0.325083ms)
- ✔ a refusal without a JSON body falls back to the status (0.382372ms)
- ✔ a 403 without a reason says the session ended (0.668583ms)
- ✔ a 403 with a reason of its own shows that reason (2.617303ms)
- ✔ the owner cancels the prompt (0.341073ms)
- ✔ AbortError says cancelled (0.348802ms)
- ✔ an authenticator that already holds a passkey (0.308112ms)
- ✔ a network failure is reported (0.310905ms)
- ✔ a null credential is not sent (0.269392ms)
- ✔ a credential without toJSON is reported, not sent (0.39632ms)
- ✔ a begin answer that is not JSON (0.30204ms)
- ✔ a begin answer with the wrong shape (0.904337ms)
- ✔ a name over 64 bytes (UTF-8) stops before begin (0.431152ms)
- ✔ 64 bytes is fine, in ASCII or in two-byte characters (0.514173ms)
- ✔ control and direction characters stop before begin (1.166845ms)
- ✔ plain text with a zero width joiner, accents and emoji is fine (0.266536ms)
- ✔ an empty name is allowed: the server names the passkey (0.314004ms)
- ✔ an old browser: the buttons are disabled with a reason, nothing is fetched (0.425291ms)
- ✔ no PublicKeyCredential at all (0.210993ms)
- ✔ a supported browser keeps the buttons enabled (0.277675ms)
- ✔ a disabled button ignores a submit (0.200422ms)
- ✔ register needs parseCreationOptionsFromJSON (0.234553ms)
- ✔ l focuses the main action of the panel, j / k walk its shown controls, h goes back (2.655088ms)
- ✔ without a primary action, l takes the first shown control (0.228012ms)
- ✔ h outside the panel leaves the focus alone; j / k outside it are not taken (0.30737ms)
- ✔ j / k cross section and recent-commit table boundaries in document order (2.936122ms)
- ✔ get answers the stored value, else the fallback (null by default) (3.753377ms)
- ✔ set stores strings; null and undefined remove; remove forgets (0.44776ms)
- ✔ without storage nothing throws and the value holds for the page (0.52939ms)
- ✔ a storage that refuses reads and writes does not throw either (0.554907ms)
- ✔ a quota error on write keeps the value for the page; a later write that works wins (0.379788ms)
- ✔ a getter of localStorage that throws (sandboxed frame) is survived (0.559912ms)
- ✔ watch calls back with the new value of its key only, and stops when told (1.336829ms)
- ✔ watch ignores the events of another storage area (sessionStorage) (0.292647ms)
- ✔ an event from another tab replaces a value held for this page (0.987571ms)
- ✔ pref answers only values of its list, else the fallback (0.736183ms)
- ✔ pref works with the empty string as a value (keys-off) (0.416734ms)
- ✔ pref.watch gives validated values (0.329088ms)
- ✔ main navigation ignores rail rows, but still drives main tables (5.321633ms)
- ✔ nothing stored: auto, the page is left to the system (3.906523ms)
- ✔ store.js applies a stored theme before ermite.js runs (0.662838ms)
- ✔ a stored value that is not a theme falls back to auto (2.198109ms)
- ✔ the switch shows the stored theme on load (0.371846ms)
- ✔ a click on the button (or its icon) cycles, stores and shows the theme (1.04437ms)
- ✔ a page back from the back/forward cache shows the stored theme (0.542447ms)
- ✔ other clicks do nothing (0.387685ms)
- ✔ another tab's change applies live (0.598977ms)
- ✔ without usable storage the choice holds for the page (1.1247ms)
- ✔ a directory opens in place and closes again without a request (12.985304ms)
- ✔ TS-001/TS-002: a directory that loads under a closed ancestor comes in hidden (3.782841ms)
- ✔ a closed directory under a closed ancestor stays closed when the ancestor opens (2.215993ms)
- ✔ TS-006: only rows are kept; no row falls back to navigating (3.430586ms)
- ✔ a modified or non-left click keeps the link navigation (0.960424ms)
- ✔ a second click while the rows are loading is ignored (1.859499ms)
- ✔ a failed request navigates to the directory (0.727484ms)
- ✔ the tree-more row has a depth and follows its directory (1.853273ms)
- ✔ l opens a closed directory, then enters it; h closes it, or goes to its directory (2.175151ms)
- ✔ l on a file opens it; Enter opens a file and toggles a directory (0.956562ms)
- ✔ h on a top-level row goes to the parent page, when there is one (0.431445ms)
- ✔ the keys are not the tree's while the finder shows its results (0.197003ms)
- ✔ a click on the name puts the cursor on the row (0.293376ms)
- ✔ init: one tab stop, the row under the cursor; name links are out of the tab order (0.33389ms)
- ✔ l or h before any focus in the tree brings the focus to the cursor row (1.441167ms)
- ✔ l and h move the focus with the cursor, and the tab stop with them (1.739119ms)
- ✔ sync (j k gg G of ermite.js) puts the focus and the tab stop on the row (0.326424ms)
- ✔ a click puts the focus and the tab stop on its row, directory or not (0.755638ms)
- ✔ collapsing a branch with the focus or the cursor in it moves both to the directory (1.694058ms)
- ✔ collapsing a directory the focus is not in leaves the focus alone (1.662788ms)
- ✔ Enter acts on the row that has the cursor, which is the focused row (1.592701ms)
- ✔ inserted rows get their level; the server gave them posinset and setsize (1.735052ms)
- ✔ Down, Up, Home and End walk the visible rows, with the focus (1.959832ms)
- ✔ Right opens a closed directory, enters an open one, and does nothing on a file (1.394066ms)
- ✔ Left closes an open directory, goes to the parent, and does nothing at the top (0.564574ms)
- ✔ l opens a file where Right does not (0.246761ms)
- ✔ the tree takes no arrow key while the finder shows its results, nor any other key (0.1364ms)
- ℹ tests 219
- ℹ suites 0
- ℹ pass 219
- ℹ fail 0
- ℹ cancelled 0
- ℹ skipped 0
- ℹ todo 0
- ℹ duration_ms 1075.780557
- Post job cleanup.
- ##[command]/usr/bin/docker exec 3652bb2a51a5f7299987c5c9758ec2287b9a3de5b834f9d0b660f0fece259e81 sh -c "cat /etc/*release | grep ^ID"
- [command]/__t/go/1.27.3/x64/bin/go env GOMODCACHE
- [command]/__t/go/1.27.3/x64/bin/go env GOCACHE
- /github/home/go/pkg/mod
- /github/home/.cache/go-build
- Cache hit occurred on the primary key setup-go-Linux-x64-undefined-go-1.27.3-0e77678b13883f19db0469401fcaa9bb64e07bcbd8d593228fa6e7ebdef5d13b, not saving cache.
- Post job cleanup.
- ##[command]/usr/bin/docker exec 3652bb2a51a5f7299987c5c9758ec2287b9a3de5b834f9d0b660f0fece259e81 sh -c "cat /etc/*release | grep ^ID"
- [command]/usr/sbin/git version
- git version 2.56.0
- Copying '/github/home/.gitconfig' to '/__w/_temp/b608c060-7f4a-439b-83c9-a42c70551de2/.gitconfig'
- Temporarily overriding HOME='/__w/_temp/b608c060-7f4a-439b-83c9-a42c70551de2' before making global git config changes
- Adding repository directory to the temporary git global config as a safe directory
- [command]/usr/sbin/git config --global --add safe.directory /__w/ermite/ermite
- Removing SSH command configuration
- [command]/usr/sbin/git config --local --name-only --get-regexp core\.sshCommand
- [command]/usr/sbin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :"
- Removing HTTP extra header
- [command]/usr/sbin/git config --local --name-only --get-regexp http\.http\:\/\/ermite\:7341\/\.extraheader
- [command]/usr/sbin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.http\:\/\/ermite\:7341\/\.extraheader' && git config --local --unset-all 'http.http://ermite:7341/.extraheader' || :"
- Removing includeIf entries pointing to credentials config files
- [command]/usr/sbin/git config --local --name-only --get-regexp ^includeIf\.gitdir:
- includeif.gitdir:/__w/ermite/ermite/.git.path
- includeif.gitdir:/__w/ermite/ermite/.git/worktrees/*.path
- includeif.gitdir:/github/workspace/.git.path
- includeif.gitdir:/github/workspace/.git/worktrees/*.path
- [command]/usr/sbin/git config --local --get-all includeif.gitdir:/__w/ermite/ermite/.git.path
- /__w/_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config
- [command]/usr/sbin/git config --local --unset includeif.gitdir:/__w/ermite/ermite/.git.path /__w/_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config
- [command]/usr/sbin/git config --local --get-all includeif.gitdir:/__w/ermite/ermite/.git/worktrees/*.path
- /__w/_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config
- [command]/usr/sbin/git config --local --unset includeif.gitdir:/__w/ermite/ermite/.git/worktrees/*.path /__w/_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config
- [command]/usr/sbin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path
- /github/runner_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config
- [command]/usr/sbin/git config --local --unset includeif.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config
- [command]/usr/sbin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path
- /github/runner_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config
- [command]/usr/sbin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config
- [command]/usr/sbin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url
- Removing credentials config '/__w/_temp/git-credentials-b61d785f-c10b-48ec-92a0-28ba583bb582.config'
- Stop and remove container: 315f5ac1299c4701a2ef0105f84fa5ca_archlinuxlatest_57b08d
- ##[command]/usr/bin/docker rm --force 3652bb2a51a5f7299987c5c9758ec2287b9a3de5b834f9d0b660f0fece259e81
- 3652bb2a51a5f7299987c5c9758ec2287b9a3de5b834f9d0b660f0fece259e81
- Remove container network: github_network_fce5c4bcf66b4f778f502202ac93eeb9
- ##[command]/usr/bin/docker network rm github_network_fce5c4bcf66b4f778f502202ac93eeb9
- github_network_fce5c4bcf66b4f778f502202ac93eeb9
- Cleaning up orphan processes