Port go package to universe to resolves #1553
Definition are now split in their own file. `#Image` is a simple base image to set up a go container `#Container` is a standalone environment to execute go command, any go command should use this definition. It shares `docker.#Run` fields to easily maintains this definition. `#Build` and `#Test` are high level definition that use `#Container` to execute common go operation in a CI. Those definitions are tested with a simple greeting package. Signed-off-by: Vasek - Tom C <tom.chauveau@epitech.eu>
This commit is contained in:
committed by
Vasek - Tom C
parent
5e025dfa2b
commit
e49bb34e87
34
pkg/universe.dagger.io/go/image.cue
Normal file
34
pkg/universe.dagger.io/go/image.cue
Normal file
@@ -0,0 +1,34 @@
|
||||
package go
|
||||
|
||||
import (
|
||||
"universe.dagger.io/docker"
|
||||
)
|
||||
|
||||
// Build a go base image
|
||||
#Image: {
|
||||
version: *"1.16" | string
|
||||
|
||||
packages: [pkgName=string]: version: string | *""
|
||||
|
||||
// FIXME Basically a copy of alpine.#Build with a different image
|
||||
// Should we create a special definition?
|
||||
docker.#Build & {
|
||||
steps: [
|
||||
docker.#Pull & {
|
||||
source: "index.docker.io/golang:\(version)-alpine"
|
||||
},
|
||||
for pkgName, pkg in packages {
|
||||
docker.#Run & {
|
||||
command: {
|
||||
name: "apk"
|
||||
args: ["add", "\(pkgName)\(pkg.version)"]
|
||||
flags: {
|
||||
"-U": true
|
||||
"--no-cache": true
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
]
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user