ruddle/examples/base/ruddle.yaml
2022-08-22 08:46:35 +02:00

78 lines
2.7 KiB
YAML

# Some version goes here
# Version of schema to pull, will also determine level of yaml-language-schema
version: "some-upstream-repo-for-ruddle@some-api-version"
# The name of the service, used when unfolding ruddle, as well as proving tracing on where logs are coming from
name: "ruddle_base_plan"
# Usually most plugins come from the same registry, as such here we can set a common
implicitProvider: git.front.kjuulh.io
# Plugins / Components, provide either new functionality, or overrides for other plugins.
plugins:
# ruddle package, comes prepacked with ruddle itself
# global sets variables that are available to all the other plugins and descendants.
# They can either be set inline or be used by child packages. If not added to properties, but not required until the root packages.
ruddle/global@latest:
# file to look for in child packages for overrides
file: ruddle.yaml # is default, can be omitted
# path to look for, for overrides
path: org
orgSettings:
- key: "name"
required: true # required is default and can be omitted
- key: "squad"
required: true
- key: "domain"
required: false
# Vars are only used in scripts, and is meant to be either environment variables mounted directly
# from existing values, or secrets unwrapped by mozilla/sops
ruddle/vars@latest:
path: vars
vars:
# when dev is provided as arg, this will be used `. ruddle run vars --features=dev`
- when: dev
vars:
SOME_VARIABLE: SOME_VALUE
- when: prod
vars:
SOME_VARIABLE:
from_secret:
sops: ruddle_some_variable
# Actions are your bread and butter for providing scripts and actions to your descendants
ruddle/actions@1.0.0:
path: actions
dependsOn:
# Actions usually require an (action-provider) these can be anything between that can execute
# something, in this case shell or dagger, but could also be python, go, rust or something else entirely.
- ruddle/shell@1.0.0
- ruddle/dagger@1.0.0
# a global path is set for scripts, this means that each script can be implicit and not require specifying a direct path for each of them
basePath: scripts/
scripts:
notify_team:
description: |
will send notification on slack
args:
- arg: "text"
- env: "env"
- env: "slack_secret"
actions:
- shell: "send_notification"
build_service:
description: |
some quite long
description
args:
- arg: "version"
actions:
- shell: get_cache.sh
- dagger: download_dependencies
- dagger: build_service
- shell: upload_service
- ruddle: notify_team