65 lines
1.3 KiB
CUE
65 lines
1.3 KiB
CUE
|
package yarn
|
||
|
|
||
|
import (
|
||
|
"dagger.cloud/dagger"
|
||
|
)
|
||
|
|
||
|
// Yarn Script
|
||
|
#Script: {
|
||
|
// Source code of the javascript application
|
||
|
source: dagger.#Dir
|
||
|
|
||
|
// Run this yarn script
|
||
|
run: string | *"build"
|
||
|
|
||
|
// Read build output from this directory
|
||
|
// (path must be relative to working directory).
|
||
|
buildDirectory: string | *"build"
|
||
|
|
||
|
// Set these environment variables during the build
|
||
|
env?: [string]: string
|
||
|
|
||
|
#dagger: compute: [
|
||
|
dagger.#FetchContainer & {
|
||
|
ref: "alpine@sha256:08d6ca16c60fe7490c03d10dc339d9fd8ea67c6466dea8d558526b1330a85930"
|
||
|
},
|
||
|
dagger.#Exec & {
|
||
|
args: ["apk", "add", "-U", "--no-cache", "bash=5.1.0-r0"]
|
||
|
},
|
||
|
dagger.#Exec & {
|
||
|
args: ["apk", "add", "-U", "--no-cache", "yarn=1.22.10-r0"]
|
||
|
},
|
||
|
dagger.#Exec & {
|
||
|
args: [
|
||
|
"/bin/bash",
|
||
|
"--noprofile",
|
||
|
"--norc",
|
||
|
"-eo",
|
||
|
"pipefail",
|
||
|
"-c",
|
||
|
"""
|
||
|
yarn install --production false
|
||
|
yarn run "$YARN_BUILD_SCRIPT"
|
||
|
mv "$YARN_BUILD_DIRECTORY" /build
|
||
|
""",
|
||
|
]
|
||
|
if env != _|_ {
|
||
|
"env": env
|
||
|
}
|
||
|
"env": {
|
||
|
YARN_BUILD_SCRIPT: run
|
||
|
YARN_CACHE_FOLDER: "/cache/yarn"
|
||
|
YARN_BUILD_DIRECTORY: buildDirectory
|
||
|
}
|
||
|
dir: "/src"
|
||
|
mount: {
|
||
|
"/src": from: source
|
||
|
"/cache/yarn": dagger.#MountCache
|
||
|
}
|
||
|
},
|
||
|
dagger.#Subdir & {
|
||
|
dir: "/build"
|
||
|
},
|
||
|
]
|
||
|
}
|