e8a62cb3aa
Signed-off-by: Solomon Hykes <solomon@dagger.io>
84 lines
1.4 KiB
CUE
84 lines
1.4 KiB
CUE
package changelog
|
|
|
|
import (
|
|
"dagger.io/dagger"
|
|
|
|
"universe.dagger.io/docker"
|
|
"universe.dagger.io/git"
|
|
"universe.dagger.io/examples/changelog.com/elixir/mix"
|
|
)
|
|
|
|
dagger.#Plan & {
|
|
// Receive things from client
|
|
inputs: {
|
|
directories: {
|
|
// App source code
|
|
app?: _
|
|
}
|
|
secrets: {
|
|
// Docker ID password
|
|
docker: _
|
|
}
|
|
params: {
|
|
app: {
|
|
// App name
|
|
name: string | *"changelog"
|
|
|
|
// Address of app base image
|
|
image: docker.#Ref | *"thechangelog/runtime:2021-05-29T10.17.12Z"
|
|
}
|
|
|
|
test: {
|
|
// Address of test db image
|
|
db: image: docker.#Ref | *"circleci/postgres:12.6"
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
// Do things
|
|
actions: {
|
|
app: {
|
|
name: inputs.params.app.name
|
|
|
|
// changelog.com source code
|
|
source: dagger.#FS
|
|
if inputs.directories.app != _|_ {
|
|
source: inputs.directories.app.contents
|
|
}
|
|
if inputs.directories.app == _|_ {
|
|
fetch: git.#Pull & {
|
|
remote: "https://github.com/thechangelog/changelog.com"
|
|
ref: "master"
|
|
}
|
|
source: fetch.output
|
|
}
|
|
|
|
// Assemble base image
|
|
base: docker.#Pull & {
|
|
source: inputs.params.app.image
|
|
}
|
|
image: base.output
|
|
|
|
// Download Elixir dependencies
|
|
deps: mix.#Get & {
|
|
app: {
|
|
"name": name
|
|
"source": source
|
|
}
|
|
container: "image": image
|
|
}
|
|
|
|
// Compile dev environment
|
|
dev: mix.#Compile & {
|
|
env: "dev"
|
|
app: {
|
|
"name": name
|
|
"source": source
|
|
}
|
|
container: "image": image
|
|
}
|
|
}
|
|
}
|
|
}
|