bust/pkg/tasks/build.go

54 lines
1.1 KiB
Go
Raw Permalink Normal View History

2022-10-29 18:15:55 +02:00
package tasks
2022-10-29 22:23:06 +02:00
import (
"context"
"log"
2022-10-29 22:51:43 +02:00
"os"
2022-10-29 18:15:55 +02:00
2022-10-29 22:23:06 +02:00
"dagger.io/dagger"
"git.front.kjuulh.io/kjuulh/byg"
"git.front.kjuulh.io/kjuulh/dagger-go/internal"
)
2022-10-29 18:15:55 +02:00
2022-10-29 22:23:06 +02:00
func Build(builder *internal.Builder, imageTag string) error {
2022-10-29 18:15:55 +02:00
log.Printf("building image: %s", imageTag)
2022-10-29 22:23:06 +02:00
client := builder.Dagger
ctx := context.Background()
return byg.
New().
Step(
"build golang",
byg.Step{
Execute: func(_ byg.Context) error {
src, err := client.
Host().
Workdir().
Read().
ID(context.Background())
if err != nil {
return err
}
2022-10-29 22:59:08 +02:00
log.Println("listing files in /src/")
dir, err = os.ReadDir("/src/")
if err == nil {
for _, d := range dir {
log.Printf("content: %s\n", d.Name())
}
}
2022-10-29 22:23:06 +02:00
golang := client.Container().From("golang:latest")
2022-10-29 23:06:06 +02:00
golang = golang.WithMountedDirectory("/src", src).WithWorkdir("/src")
2022-10-29 22:23:06 +02:00
_, err = golang.Exec(dagger.ContainerExecOpts{
Args: []string{"go", "build", "-o", "build/"},
}).ExitCode(ctx)
return err
},
}).
Execute(context.Background())
2022-10-29 18:15:55 +02:00
}