Yes, I am trying to understand how it really works.
project structure:
|- .ci
|- main.go
|- .git
|- src```
```go
client, err := dagger.Connect(ctx, dagger.WithLogOutput(os.Stdout), dagger.WithWorkdir("../"))
if err != nil {
return err
}
defer client.Close()
if err := generateVersion(client, ctx); err != nil {
fmt.Println(err)
}```
```go
func generateVersion(client *dagger.Client, ctx context.Context) error {
fmt.Println("generate-version")
// get reference to the local project
src := client.Host().Workdir()
// get `gittools/gitversion:latest` image
golang := client.Container().From("gittools/gitversion:latest")
// mount sources into `gittools/gitversion:latest` image
golang = golang.WithMountedDirectory("/repo", src)
// execute version generation in container
golang = golang.Exec(dagger.ContainerExecOpts{
Args: []string{"/repo", "/nonormalize", "/nocache", "/output", "file", "/outputfile", "/repo/version.json"},
})````