57 lines
1.3 KiB
CUE
57 lines
1.3 KiB
CUE
|
package cue
|
||
|
|
||
|
import (
|
||
|
"dagger.io/dagger"
|
||
|
|
||
|
"universe.dagger.io/alpine"
|
||
|
"universe.dagger.io/docker"
|
||
|
"universe.dagger.io/bash"
|
||
|
)
|
||
|
|
||
|
#Lint: {
|
||
|
source: dagger.#FS
|
||
|
|
||
|
docker.#Build & {
|
||
|
steps: [
|
||
|
alpine.#Build & {
|
||
|
packages: bash: _
|
||
|
packages: curl: _
|
||
|
packages: git: _
|
||
|
},
|
||
|
|
||
|
docker.#Copy & {
|
||
|
contents: source
|
||
|
"source": "go.mod"
|
||
|
dest: "go.mod"
|
||
|
},
|
||
|
|
||
|
// Install CUE
|
||
|
bash.#Run & {
|
||
|
script: contents: #"""
|
||
|
export CUE_VERSION="$(grep cue ./go.mod | cut -d' ' -f2 | head -1 | sed -E 's/\.[[:digit:]]\.[[:alnum:]]+-[[:alnum:]]+$//')"
|
||
|
export CUE_TARBALL="cue_${CUE_VERSION}_linux_amd64.tar.gz"
|
||
|
echo "Installing cue version $CUE_VERSION"
|
||
|
curl -L "https://github.com/cue-lang/cue/releases/download/${CUE_VERSION}/${CUE_TARBALL}" | tar zxf - -C /usr/local/bin
|
||
|
cue version
|
||
|
"""#
|
||
|
},
|
||
|
|
||
|
// CACHE: copy only *.cue files
|
||
|
docker.#Copy & {
|
||
|
contents: source
|
||
|
include: ["*.cue"]
|
||
|
dest: "/cue"
|
||
|
},
|
||
|
|
||
|
// LINT
|
||
|
bash.#Run & {
|
||
|
workdir: "/cue"
|
||
|
script: contents: #"""
|
||
|
find . -name '*.cue' -not -path '*/cue.mod/*' -print | time xargs -t -n 1 -P 8 cue fmt -s
|
||
|
test -z "$(git status -s . | grep -e "^ M" | grep "\.cue" | cut -d ' ' -f3 | tee /dev/stderr)"
|
||
|
"""#
|
||
|
},
|
||
|
]
|
||
|
}
|
||
|
}
|