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
51
pkg/universe.dagger.io/go/build.cue
Normal file
51
pkg/universe.dagger.io/go/build.cue
Normal file
@@ -0,0 +1,51 @@
|
||||
package go
|
||||
|
||||
import (
|
||||
"dagger.io/dagger"
|
||||
"dagger.io/dagger/engine"
|
||||
)
|
||||
|
||||
// Build a go binary
|
||||
#Build: {
|
||||
// Go version to use
|
||||
version: *#Image.version | string
|
||||
|
||||
// Source code
|
||||
source: dagger.#FS
|
||||
|
||||
// Target package to build
|
||||
package: *"." | string
|
||||
|
||||
// Target architecture
|
||||
arch: *"amd64" | string
|
||||
|
||||
// Target OS
|
||||
os: *"linux" | string
|
||||
|
||||
// Build tags to use for building
|
||||
tags: *"" | string
|
||||
|
||||
// LDFLAGS to use for linking
|
||||
ldflags: *"" | string
|
||||
|
||||
// Target binary output
|
||||
output: string
|
||||
|
||||
env: [string]: string
|
||||
|
||||
_build: #Container & {
|
||||
"version": version
|
||||
"source": source
|
||||
"env": env
|
||||
args: ["build", "-v", "-tags", tags, "-ldflags", ldflags, "-o", output, package]
|
||||
}
|
||||
|
||||
_copy: engine.#Copy & {
|
||||
input: engine.#Scratch
|
||||
contents: _build.output.rootfs
|
||||
source: output
|
||||
dest: output
|
||||
}
|
||||
|
||||
binary: _copy.output
|
||||
}
|
Reference in New Issue
Block a user