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
|
|
|
}
|