Skip to content

Commit

Permalink
write engine logs to file, cat them
Browse files Browse the repository at this point in the history
Signed-off-by: Erik Sipsma <erik@sipsma.dev>
  • Loading branch information
sipsma committed Apr 22, 2024
1 parent 598025f commit 4ba90f8
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 8 deletions.
34 changes: 26 additions & 8 deletions ci/test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ package main

import (
"context"
"fmt"
"io"
"os"
"path/filepath"

"github.com/moby/buildkit/identity"
Expand Down Expand Up @@ -94,7 +97,7 @@ func (t *Test) test(

args = append(args, pkg)

cmd, err := t.testCmd(ctx)
cmd, stateVol, err := t.testCmd(ctx)
if err != nil {
return err
}
Expand All @@ -111,10 +114,24 @@ func (t *Test) test(
return err
})
}
return eg.Wait()
err = eg.Wait()
if _, exportErr := dag.Container().From("alpine:3.18").
WithMountedCache("/state", stateVol).
WithExec([]string{"cp", "/state/engine.log", "/engine.log"}).
File("/engine.log").
Export(ctx, "engine.log"); err != nil {
return fmt.Errorf("failed to export engine.log: %w", exportErr)
}
f, fErr := os.Open("engine.log")
if fErr != nil {
return fmt.Errorf("failed to open engine.log: %w", fErr)
}
defer f.Close()
io.Copy(os.Stdout, f)
return err
}

func (t *Test) testCmd(ctx context.Context) (*Container, error) {
func (t *Test) testCmd(ctx context.Context) (*Container, *CacheVolume, error) {
engine := t.Dagger.Engine().
WithConfig(`registry."registry:5000"`, `http = true`).
WithConfig(`registry."privateregistry:5000"`, `http = true`).
Expand All @@ -124,12 +141,12 @@ func (t *Test) testCmd(ctx context.Context) (*Container, error) {
WithArg(`network-cidr`, `10.88.0.0/16`)
devEngine, err := engine.Container(ctx, "")
if err != nil {
return nil, err
return nil, nil, err
}

devBinary, err := t.Dagger.CLI().File(ctx, "")
if err != nil {
return nil, err
return nil, nil, err
}

// This creates an engine.tar container file that can be used by the integration tests.
Expand All @@ -145,20 +162,21 @@ func (t *Test) testCmd(ctx context.Context) (*Container, error) {
Permissions: 0755,
})

stateVol := dag.CacheVolume("dagger-dev-engine-test-state" + identity.NewID())
registrySvc := registry()
devEngineSvc := devEngine.
WithServiceBinding("registry", registrySvc).
WithServiceBinding("privateregistry", privateRegistry()).
WithExposedPort(1234, ContainerWithExposedPortOpts{Protocol: Tcp}).
WithMountedCache(distconsts.EngineDefaultStateDir, dag.CacheVolume("dagger-dev-engine-test-state"+identity.NewID())).
WithMountedCache(distconsts.EngineDefaultStateDir, stateVol).
WithExec(nil, ContainerWithExecOpts{
InsecureRootCapabilities: true,
}).
AsService()

endpoint, err := devEngineSvc.Endpoint(ctx, ServiceEndpointOpts{Port: 1234, Scheme: "tcp"})
if err != nil {
return nil, err
return nil, nil, err
}

cliBinPath := "/.dagger-cli"
Expand Down Expand Up @@ -186,7 +204,7 @@ func (t *Test) testCmd(ctx context.Context) (*Container, error) {
// this avoids rate limiting in our ci tests
tests = tests.WithMountedSecret("/root/.docker/config.json", t.Dagger.HostDockerConfig)
}
return tests, nil
return tests, stateVol, nil
}

func registry() *Service {
Expand Down
7 changes: 7 additions & 0 deletions cmd/engine/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,13 @@ func main() { //nolint:gocyclo
sloglogrus.LogLevels[slog.LevelTrace] = logrus.TraceLevel
slog.SetDefault(slog.New(slogOpts.NewLogrusHandler()))

lf, err := os.OpenFile(filepath.Join(cfg.Root, "engine.log"), os.O_CREATE|os.O_APPEND|os.O_WRONLY, 0o600)
if err != nil {
return err
}
defer lf.Close()
logrus.SetOutput(lf)

// TODO:
// TODO:
// TODO:
Expand Down

0 comments on commit 4ba90f8

Please sign in to comment.