3e8c9379b5
Signed-off-by: Andrea Luzzardi <aluzzardi@gmail.com>
49 lines
843 B
CUE
49 lines
843 B
CUE
// Go operation
|
|
package go
|
|
|
|
import (
|
|
"dagger.io/dagger"
|
|
"dagger.io/dagger/core"
|
|
"universe.dagger.io/docker"
|
|
)
|
|
|
|
// A standalone go environment to run go command
|
|
#Container: {
|
|
// Container app name
|
|
name: *"go_builder" | string
|
|
|
|
// Source code
|
|
source: dagger.#FS
|
|
|
|
// Use go image
|
|
_image: #Image
|
|
|
|
_sourcePath: "/src"
|
|
_modCachePath: "/root/.cache/go-mod"
|
|
_buildCachePath: "/root/.cache/go-build"
|
|
|
|
docker.#Run & {
|
|
input: *_image.output | docker.#Image
|
|
workdir: _sourcePath
|
|
mounts: {
|
|
"source": {
|
|
dest: _sourcePath
|
|
contents: source
|
|
}
|
|
"go mod cache": {
|
|
contents: core.#CacheDir & {
|
|
id: "\(name)_mod"
|
|
}
|
|
dest: _modCachePath
|
|
}
|
|
"go build cache": {
|
|
contents: core.#CacheDir & {
|
|
id: "\(name)_build"
|
|
}
|
|
dest: _buildCachePath
|
|
}
|
|
}
|
|
env: GOMODCACHE: _modCachePath
|
|
}
|
|
}
|