porting all github actions from bluesky-social/indigo to tangled CI

bump to go v1.24 (#1096)

Don't have any specific burning need for this, just keeping up with
releases.

Go 1.25 is expected in August; we'll probably wait until at least
v1.25.1 and an Alpine release to upgrade.

authored by bnewbold.net and committed by

GitHub ed6705a3 f2ad2426

+28 -27
+2 -2
.github/workflows/golang.yml
··· 19 19 - name: Set up Go tooling 20 20 uses: actions/setup-go@v4 21 21 with: 22 - go-version: "1.23" 22 + go-version: "1.24" 23 23 - name: Build 24 24 run: make build 25 25 - name: Test ··· 32 32 - name: Set up Go tooling 33 33 uses: actions/setup-go@v4 34 34 with: 35 - go-version: "1.23" 35 + go-version: "1.24" 36 36 - name: Lint 37 37 run: make lint
+2 -2
cmd/beemo/Dockerfile
··· 3 3 # podman build -f ./cmd/beemo/Dockerfile -t beemo . 4 4 5 5 ### Compile stage 6 - FROM golang:1.23-alpine3.20 AS build-env 6 + FROM golang:1.24-alpine3.22 AS build-env 7 7 RUN apk add --no-cache build-base make git 8 8 9 9 ADD . /dockerbuild ··· 15 15 go build -tags timetzdata -o /beemo ./cmd/beemo 16 16 17 17 ### Run stage 18 - FROM alpine:3.20 18 + FROM alpine:3.22 19 19 20 20 RUN apk add --no-cache --update dumb-init ca-certificates runit 21 21 ENTRYPOINT ["dumb-init", "--"]
+2 -2
cmd/bigsky/Dockerfile
··· 3 3 # podman build -f ./cmd/bigsky/Dockerfile -t bigsky . 4 4 5 5 ### Compile stage 6 - FROM golang:1.23-alpine3.20 AS build-env 6 + FROM golang:1.24-alpine3.22 AS build-env 7 7 RUN apk add --no-cache build-base make git 8 8 9 9 ADD . /dockerbuild ··· 28 28 RUN yarn build 29 29 30 30 ### Run stage 31 - FROM alpine:3.20 31 + FROM alpine:3.22 32 32 33 33 RUN apk add --no-cache --update dumb-init ca-certificates runit 34 34 ENTRYPOINT ["dumb-init", "--"]
+2 -2
cmd/bluepages/Dockerfile
··· 3 3 # podman build -f ./cmd/bluepages/Dockerfile -t bluepages . 4 4 5 5 ### Compile stage 6 - FROM golang:1.23-alpine3.20 AS build-env 6 + FROM golang:1.24-alpine3.22 AS build-env 7 7 RUN apk add --no-cache build-base make git 8 8 9 9 ADD . /dockerbuild ··· 15 15 go build -tags timetzdata -o /bluepages ./cmd/bluepages 16 16 17 17 ### Run stage 18 - FROM alpine:3.20 18 + FROM alpine:3.22 19 19 20 20 RUN apk add --no-cache --update dumb-init ca-certificates runit 21 21
+1 -1
cmd/collectiondir/Dockerfile
··· 1 - FROM golang:1.23-bullseye AS build-env 1 + FROM golang:1.24-bullseye AS build-env 2 2 3 3 ENV DEBIAN_FRONTEND=noninteractive 4 4 ENV TZ=Etc/UTC
+1 -1
cmd/goat/util.go
··· 72 72 73 73 // returns a pointer because that is what xrpc.Client expects 74 74 func userAgent() *string { 75 - s := fmt.Sprintf("goat/" + versioninfo.Short()) 75 + s := fmt.Sprintf("goat/%s", versioninfo.Short()) 76 76 return &s 77 77 }
+2 -2
cmd/hepa/Dockerfile
··· 3 3 # podman build -f ./cmd/hepa/Dockerfile -t hepa . 4 4 5 5 ### Compile stage 6 - FROM golang:1.23-alpine3.20 AS build-env 6 + FROM golang:1.24-alpine3.22 AS build-env 7 7 RUN apk add --no-cache build-base make git 8 8 9 9 ADD . /dockerbuild ··· 15 15 go build -tags timetzdata -o /hepa ./cmd/hepa 16 16 17 17 ### Run stage 18 - FROM alpine:3.20 18 + FROM alpine:3.22 19 19 20 20 RUN apk add --no-cache --update dumb-init ca-certificates runit 21 21 ENTRYPOINT ["dumb-init", "--"]
+2 -2
cmd/palomar/Dockerfile
··· 3 3 # podman build -f ./cmd/palomar/Dockerfile -t palomar . 4 4 5 5 ### Compile stage 6 - FROM golang:1.23-alpine3.20 AS build-env 6 + FROM golang:1.24-alpine3.22 AS build-env 7 7 RUN apk add --no-cache build-base make git 8 8 9 9 ADD . /dockerbuild ··· 15 15 go build -tags timetzdata -o /palomar ./cmd/palomar 16 16 17 17 ### Run stage 18 - FROM alpine:3.20 18 + FROM alpine:3.22 19 19 20 20 RUN apk add --no-cache --update dumb-init ca-certificates runit 21 21 ENTRYPOINT ["dumb-init", "--"]
+1 -1
cmd/rainbow/Dockerfile
··· 1 - FROM golang:1.23-bullseye AS build-env 1 + FROM golang:1.24-bullseye AS build-env 2 2 3 3 ENV DEBIAN_FRONTEND=noninteractive 4 4 ENV TZ=Etc/UTC
+2 -2
cmd/relay/Dockerfile
··· 3 3 # podman build -f ./cmd/relay/Dockerfile -t relay . 4 4 5 5 ### Compile stage 6 - FROM golang:1.23-alpine3.20 AS build-env 6 + FROM golang:1.24-alpine3.22 AS build-env 7 7 RUN apk add --no-cache build-base make git 8 8 9 9 ADD . /dockerbuild ··· 26 26 RUN yarn build 27 27 28 28 ### Run stage 29 - FROM alpine:3.20 29 + FROM alpine:3.22 30 30 31 31 RUN apk add --no-cache --update dumb-init ca-certificates runit 32 32 ENTRYPOINT ["dumb-init", "--"]
+1 -1
cmd/sonar/Dockerfile
··· 1 1 # Stage 1: Build the Go binary 2 - FROM golang:1.23-alpine3.20 AS builder 2 + FROM golang:1.24-alpine3.22 AS build-env 3 3 4 4 # Install SSL ca certificates. 5 5 RUN apk update && apk add --no-cache ca-certificates && update-ca-certificates
+2 -2
cmd/supercollider/Dockerfile
··· 1 1 # Stage 1: Build the Go binary 2 - FROM golang:1.23-alpine3.20 AS builder 2 + FROM golang:1.24-alpine3.22 AS build-env 3 3 4 4 # Create a directory for the application 5 5 WORKDIR /app ··· 23 23 COPY --from=certs /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt 24 24 25 25 # Copy the binary from the first stage. 26 - COPY --from=builder /supercollider /supercollider 26 + COPY --from=build-env /supercollider /supercollider 27 27 28 28 # Set the startup command to run the binary 29 29 CMD ["/supercollider"]
+2 -2
go.mod
··· 1 1 module github.com/bluesky-social/indigo 2 2 3 - go 1.23 3 + go 1.24 4 4 5 - toolchain go1.23.8 5 + toolchain go1.24.1 6 6 7 7 require ( 8 8 github.com/PuerkitoBio/purell v1.2.1
+6 -5
mst/mst_test.go
··· 13 13 "testing" 14 14 15 15 "github.com/bluesky-social/indigo/util" 16 - cid "github.com/ipfs/go-cid" 16 + 17 + "github.com/ipfs/go-cid" 17 18 "github.com/ipfs/go-datastore" 18 19 blockstore "github.com/ipfs/go-ipfs-blockstore" 19 20 "github.com/ipld/go-car/v2" ··· 32 33 } 33 34 34 35 func TestBasicMst(t *testing.T) { 35 - rand.Seed(6123123) 36 36 37 37 ctx := context.Background() 38 38 cst := util.CborStore(blockstore.NewBlockstore(datastore.NewMapDatastore())) 39 39 mst := createMST(cst, cid.Undef, []nodeEntry{}, -1) 40 40 41 + // NOTE: these were previously generated randomly, but the random seed behavior changed 41 42 vals := map[string]cid.Cid{ 42 - "cats/cats": randCid(), 43 - "dogs/dogs": randCid(), 44 - "cats/bears": randCid(), 43 + "cats/cats": mustCid(t, "bafkreicwamkg77pijyudfbdmskelsnuztr6gp62lqfjv3e3urbs3gxnv2m"), 44 + "dogs/dogs": mustCid(t, "bafkreihwoet2mghoduxannw3uqsq44a3if37i5omnlqmjcfuhcdegzpyn4"), 45 + "cats/bears": mustCid(t, "bafkreiealwcgkpqxmr75a2vubzdertnbrip65nclv6gbsss4w7ef7fh6oy"), 45 46 } 46 47 47 48 for k, v := range vals {