examples/jamstack: added support for frontend (netlify)
Signed-off-by: Sam Alba <sam.alba@gmail.com>
This commit is contained in:
parent
c06f2aa55e
commit
3911c25803
52
examples/jamstack/frontend.cue
Normal file
52
examples/jamstack/frontend.cue
Normal file
@ -0,0 +1,52 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"dagger.io/dagger"
|
||||
"dagger.io/netlify"
|
||||
"dagger.io/js/react"
|
||||
)
|
||||
|
||||
frontend: {
|
||||
// Source code to build the app
|
||||
source: dagger.#Artifact
|
||||
|
||||
writeEnvFile?: string
|
||||
|
||||
// Yarn Build
|
||||
yarn: {
|
||||
// Run this yarn script
|
||||
script: string | *"build"
|
||||
|
||||
// Read build output from this directory
|
||||
// (path must be relative to working directory).
|
||||
buildDir: string | *"build"
|
||||
}
|
||||
|
||||
// Build environment variables
|
||||
environment: [string]: string
|
||||
environment: NODE_ENV: string | *"production"
|
||||
environment: APP_URL: "https://\(name).netlify.app/"
|
||||
}
|
||||
|
||||
frontend: {
|
||||
app: react.#App & {
|
||||
source: frontend.source
|
||||
env: frontend.environment
|
||||
|
||||
if frontend.writeEnvFile != _|_ {
|
||||
writeEnvFile: frontend.writeEnvFile
|
||||
}
|
||||
|
||||
yarn: {
|
||||
script: frontend.yarn.script
|
||||
buildDir: frontend.yarn.buildDir
|
||||
}
|
||||
}
|
||||
|
||||
// Host the application with Netlify
|
||||
site: netlify.#Site & {
|
||||
"name": name
|
||||
account: infra.netlifyAccount
|
||||
contents: app.build
|
||||
}
|
||||
}
|
@ -2,6 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"dagger.io/aws"
|
||||
"dagger.io/netlify"
|
||||
)
|
||||
|
||||
infra: {
|
||||
@ -28,4 +29,7 @@ infra: {
|
||||
|
||||
// ARN of the RDS Instance
|
||||
rdsInstanceArn: string
|
||||
|
||||
// Netlify credentials
|
||||
netlifyAccount: netlify.#Account
|
||||
}
|
||||
|
@ -3,9 +3,6 @@ package main
|
||||
// Name of the application
|
||||
name: string & =~"[a-z0-9-]+"
|
||||
|
||||
// FIXME: temporary workaround (GH issue #142) - image metadata is lost after build
|
||||
backend: container: command: ["/bin/hello-go"]
|
||||
|
||||
// Inject db info in the container environment
|
||||
backend: environment: {
|
||||
DB_USERNAME: database.username
|
||||
@ -16,7 +13,10 @@ backend: environment: {
|
||||
DB_TYPE: database.dbType
|
||||
}
|
||||
|
||||
// Configure the frontend with the API URL
|
||||
frontend: environment: APP_URL_API: url.backendURL
|
||||
|
||||
url: {
|
||||
frontendURL: "FIXME"
|
||||
frontendURL: frontend.site.url
|
||||
backendURL: "https://\(backend.hostname)/"
|
||||
}
|
||||
|
Reference in New Issue
Block a user