All checks were successful
check / check (push) Successful in 34s
The tool derives ed25519 SSH keys from a BIP-39 mnemonic and prints them, either as an authorized_keys line or as an unencrypted OpenSSH private key. Both README test vectors are asserted in the tests. The mnemonic is looked for in the order the README gives, and refused when it fails its checksum or when there is nowhere left to look. The repository standards come with it: the vendored linter configuration and policies, the script/ entrypoints with a thin Makefile, and a Gitea workflow. Linting happens only inside the image built from Dockerfile.lint, which pins the linter by hash, so the root Dockerfile runs the formatting check, the tests and the build, and script/cibuild runs the linter before it. Model: opus-5
27 lines
658 B
Docker
27 lines
658 B
Docker
# The formatting check, the tests and the build. Linting is not here:
|
|
# it runs in its own pinned image, see Dockerfile.lint and script/lint,
|
|
# which script/cibuild runs before this file.
|
|
|
|
# golang:1.26-alpine, 2026-09-07
|
|
FROM golang@sha256:ce864e7223ac17b1775e6fd0b4c0db580c2eb50e7953a427916379e4b92a1628 AS builder
|
|
|
|
RUN apk add --no-cache make git
|
|
|
|
WORKDIR /src
|
|
|
|
COPY go.mod go.sum ./
|
|
RUN go mod download
|
|
|
|
COPY . .
|
|
|
|
RUN make fmt-check
|
|
RUN make test
|
|
RUN make build
|
|
|
|
# alpine:3.23, 2026-09-07
|
|
FROM alpine@sha256:fd791d74b68913cbb027c6546007b3f0d3bc45125f797758156952bc2d6daf40
|
|
|
|
COPY --from=builder /src/keyfunc /usr/local/bin/keyfunc
|
|
|
|
ENTRYPOINT ["keyfunc"]
|