chore: bump Go to 1.24.0

This commit is contained in:
Rob Watson 2025-02-12 07:04:51 +01:00
parent 9c267e0f35
commit 6e369a20ca
8 changed files with 18 additions and 40 deletions

View File

@ -27,15 +27,15 @@ jobs:
ffmpeg-version: release ffmpeg-version: release
- name: checkout - name: checkout
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Go 1.23.5 - name: Setup Go 1.24.0
uses: actions/setup-go@v5 uses: actions/setup-go@v5
with: with:
go-version: '1.23.5' go-version: '1.24.0'
cache: false cache: false
- name: golangci-lint - name: golangci-lint
uses: golangci/golangci-lint-action@v6 uses: golangci/golangci-lint-action@v6
with: with:
version: v1.60.1 version: v1.64.2
- name: check_gomod - name: check_gomod
run: mise run check_gomod run: mise run check_gomod
- name: test_ci - name: test_ci

View File

@ -1,7 +1,6 @@
package container package container
import ( import (
"context"
"errors" "errors"
"io" "io"
"testing" "testing"
@ -12,9 +11,6 @@ import (
) )
func TestHandleEvents(t *testing.T) { func TestHandleEvents(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
t.Cleanup(cancel)
var count int var count int
eventsC1 := make(chan events.Message) eventsC1 := make(chan events.Message)
eventsC2 := make(chan events.Message) eventsC2 := make(chan events.Message)
@ -37,7 +33,7 @@ func TestHandleEvents(t *testing.T) {
go func() { go func() {
defer close(done) defer close(done)
handleEvents(ctx, containerID, &dockerClient, logger, ch) handleEvents(t.Context(), containerID, &dockerClient, logger, ch)
}() }()
go func() { go func() {

View File

@ -3,7 +3,6 @@ package container
import ( import (
"bufio" "bufio"
"bytes" "bytes"
"context"
_ "embed" _ "embed"
"io" "io"
"testing" "testing"
@ -20,9 +19,6 @@ var statsJSON []byte
var statsWithRestartJSON []byte var statsWithRestartJSON []byte
func TestHandleStats(t *testing.T) { func TestHandleStats(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
t.Cleanup(cancel)
pr, pw := io.Pipe() pr, pw := io.Pipe()
containerID := "b905f51b47242090ae504c184c7bc84d6274511ef763c1847039dcaa00a3ad27" containerID := "b905f51b47242090ae504c184c7bc84d6274511ef763c1847039dcaa00a3ad27"
dockerClient := testhelpers.MockDockerClient{ContainerStatsResponse: pr} dockerClient := testhelpers.MockDockerClient{ContainerStatsResponse: pr}
@ -33,7 +29,7 @@ func TestHandleStats(t *testing.T) {
go func() { go func() {
defer close(ch) defer close(ch)
handleStats(ctx, containerID, &dockerClient, networkCountConfig, logger, ch) handleStats(t.Context(), containerID, &dockerClient, networkCountConfig, logger, ch)
}() }()
go func() { go func() {
@ -61,9 +57,6 @@ func TestHandleStats(t *testing.T) {
} }
func TestHandleStatsWithContainerRestart(t *testing.T) { func TestHandleStatsWithContainerRestart(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
t.Cleanup(cancel)
pr, pw := io.Pipe() pr, pw := io.Pipe()
containerID := "d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39" containerID := "d0adc747fb12b9ce2376408aed8538a0769de55aa9c239313f231d9d80402e39"
dockerClient := testhelpers.MockDockerClient{ContainerStatsResponse: pr} dockerClient := testhelpers.MockDockerClient{ContainerStatsResponse: pr}
@ -74,7 +67,7 @@ func TestHandleStatsWithContainerRestart(t *testing.T) {
go func() { go func() {
defer close(ch) defer close(ch)
handleStats(ctx, containerID, &dockerClient, networkCountConfig, logger, ch) handleStats(t.Context(), containerID, &dockerClient, networkCountConfig, logger, ch)
}() }()
go func() { go func() {

2
go.mod
View File

@ -1,6 +1,6 @@
module git.netflux.io/rob/termstream module git.netflux.io/rob/termstream
go 1.23.5 go 1.24.0
require ( require (
github.com/docker/docker v27.5.0+incompatible github.com/docker/docker v27.5.0+incompatible

View File

@ -1,7 +1,6 @@
package mediaserver_test package mediaserver_test
import ( import (
"context"
"testing" "testing"
"time" "time"
@ -16,22 +15,19 @@ import (
const component = "mediaserver" const component = "mediaserver"
func TestMediaServerStartStop(t *testing.T) { func TestMediaServerStartStop(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
t.Cleanup(cancel)
logger := testhelpers.NewTestLogger() logger := testhelpers.NewTestLogger()
apiClient, err := client.NewClientWithOpts(client.FromEnv) apiClient, err := client.NewClientWithOpts(client.FromEnv)
require.NoError(t, err) require.NoError(t, err)
containerClient, err := container.NewClient(ctx, apiClient, logger) containerClient, err := container.NewClient(t.Context(), apiClient, logger)
require.NoError(t, err) require.NoError(t, err)
t.Cleanup(func() { require.NoError(t, containerClient.Close()) }) t.Cleanup(func() { require.NoError(t, containerClient.Close()) })
running, err := containerClient.ContainerRunning(ctx, map[string]string{"component": component}) running, err := containerClient.ContainerRunning(t.Context(), map[string]string{"component": component})
require.NoError(t, err) require.NoError(t, err)
assert.False(t, running) assert.False(t, running)
mediaServer := mediaserver.StartActor(ctx, mediaserver.StartActorParams{ mediaServer := mediaserver.StartActor(t.Context(), mediaserver.StartActorParams{
FetchIngressStateInterval: 500 * time.Millisecond, FetchIngressStateInterval: 500 * time.Millisecond,
ChanSize: 1, ChanSize: 1,
ContainerClient: containerClient, ContainerClient: containerClient,
@ -43,7 +39,7 @@ func TestMediaServerStartStop(t *testing.T) {
require.Eventually( require.Eventually(
t, t,
func() bool { func() bool {
running, err = containerClient.ContainerRunning(ctx, map[string]string{"component": component}) running, err = containerClient.ContainerRunning(t.Context(), map[string]string{"component": component})
return err == nil && running return err == nil && running
}, },
time.Second*10, time.Second*10,
@ -81,7 +77,7 @@ func TestMediaServerStartStop(t *testing.T) {
mediaServer.Close() mediaServer.Close()
running, err = containerClient.ContainerRunning(ctx, map[string]string{"component": component}) running, err = containerClient.ContainerRunning(t.Context(), map[string]string{"component": component})
require.NoError(t, err) require.NoError(t, err)
assert.False(t, running) assert.False(t, running)
} }

View File

@ -1,5 +1,5 @@
[env] [env]
GOTOOLCHAIN = "go1.23.5" GOTOOLCHAIN = "go1.24.0"
[tasks.test] [tasks.test]
description = "Run tests" description = "Run tests"

View File

@ -1,7 +1,6 @@
package multiplexer_test package multiplexer_test
import ( import (
"context"
"testing" "testing"
"time" "time"
@ -17,22 +16,19 @@ import (
const component = "multiplexer" const component = "multiplexer"
func TestMultiplexer(t *testing.T) { func TestMultiplexer(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
t.Cleanup(cancel)
logger := testhelpers.NewTestLogger() logger := testhelpers.NewTestLogger()
apiClient, err := client.NewClientWithOpts(client.FromEnv) apiClient, err := client.NewClientWithOpts(client.FromEnv)
require.NoError(t, err) require.NoError(t, err)
containerClient, err := container.NewClient(ctx, apiClient, logger) containerClient, err := container.NewClient(t.Context(), apiClient, logger)
require.NoError(t, err) require.NoError(t, err)
t.Cleanup(func() { require.NoError(t, containerClient.Close()) }) t.Cleanup(func() { require.NoError(t, containerClient.Close()) })
running, err := containerClient.ContainerRunning(ctx, map[string]string{"component": component}) running, err := containerClient.ContainerRunning(t.Context(), map[string]string{"component": component})
require.NoError(t, err) require.NoError(t, err)
assert.False(t, running) assert.False(t, running)
srv := mediaserver.StartActor(ctx, mediaserver.StartActorParams{ srv := mediaserver.StartActor(t.Context(), mediaserver.StartActorParams{
RTMPPort: 19350, RTMPPort: 19350,
APIPort: 9998, APIPort: 9998,
FetchIngressStateInterval: 250 * time.Millisecond, FetchIngressStateInterval: 250 * time.Millisecond,
@ -54,7 +50,7 @@ func TestMultiplexer(t *testing.T) {
"source not live", "source not live",
) )
mp := multiplexer.NewActor(ctx, multiplexer.NewActorParams{ mp := multiplexer.NewActor(t.Context(), multiplexer.NewActorParams{
SourceURL: srv.State().RTMPInternalURL, SourceURL: srv.State().RTMPInternalURL,
ChanSize: 1, ChanSize: 1,
ContainerClient: containerClient, ContainerClient: containerClient,

View File

@ -1,16 +1,13 @@
package testhelpers package testhelpers
import ( import (
"io"
"log/slog" "log/slog"
"os" "os"
) )
// NewNopLogger returns a logger that discards all log output. // NewNopLogger returns a logger that discards all log output.
//
// TODO: remove in Go 1.24: https://github.com/golang/go/issues/62005
func NewNopLogger() *slog.Logger { func NewNopLogger() *slog.Logger {
return slog.New(slog.NewJSONHandler(io.Discard, nil)) return slog.New(slog.DiscardHandler)
} }
// NewTestLogger returns a logger that writes to stderr. // NewTestLogger returns a logger that writes to stderr.