distributable, please
Some checks failed
CI / Rustfmt (push) Successful in 22s
CI / Cargo Audit & Deny (push) Successful in 36s
CI / Security Blocking Checks (push) Successful in 6s
CI / Web Blocking Checks (push) Successful in 53s
CI / Web Advisory Checks (push) Successful in 34s
Publish Images / Resolve Publish Metadata (push) Successful in 1s
CI / Security Advisory Checks (push) Successful in 38s
CI / Clippy (push) Successful in 2m7s
Publish Images / Publish Docker Dist Bundle (push) Failing after 19s
Publish Images / Publish web (amd64) (push) Successful in 49s
Publish Images / Publish web (arm64) (push) Successful in 3m31s
CI / Tests (push) Successful in 8m48s
Publish Images / Build Rust Bundles (amd64) (push) Successful in 12m42s
Publish Images / Build Rust Bundles (arm64) (push) Successful in 12m19s
Publish Images / Publish agent (amd64) (push) Successful in 26s
Publish Images / Publish api (amd64) (push) Successful in 38s
Publish Images / Publish notifier (amd64) (push) Successful in 42s
Publish Images / Publish executor (amd64) (push) Successful in 46s
Publish Images / Publish agent (arm64) (push) Successful in 56s
Publish Images / Publish api (arm64) (push) Successful in 1m52s
Publish Images / Publish executor (arm64) (push) Successful in 2m2s
Publish Images / Publish notifier (arm64) (push) Successful in 2m3s
Publish Images / Publish manifest attune/agent (push) Successful in 6s
Publish Images / Publish manifest attune/api (push) Successful in 11s
Publish Images / Publish manifest attune/executor (push) Successful in 10s
Publish Images / Publish manifest attune/notifier (push) Successful in 8s
Publish Images / Publish manifest attune/web (push) Successful in 8s
Some checks failed
CI / Rustfmt (push) Successful in 22s
CI / Cargo Audit & Deny (push) Successful in 36s
CI / Security Blocking Checks (push) Successful in 6s
CI / Web Blocking Checks (push) Successful in 53s
CI / Web Advisory Checks (push) Successful in 34s
Publish Images / Resolve Publish Metadata (push) Successful in 1s
CI / Security Advisory Checks (push) Successful in 38s
CI / Clippy (push) Successful in 2m7s
Publish Images / Publish Docker Dist Bundle (push) Failing after 19s
Publish Images / Publish web (amd64) (push) Successful in 49s
Publish Images / Publish web (arm64) (push) Successful in 3m31s
CI / Tests (push) Successful in 8m48s
Publish Images / Build Rust Bundles (amd64) (push) Successful in 12m42s
Publish Images / Build Rust Bundles (arm64) (push) Successful in 12m19s
Publish Images / Publish agent (amd64) (push) Successful in 26s
Publish Images / Publish api (amd64) (push) Successful in 38s
Publish Images / Publish notifier (amd64) (push) Successful in 42s
Publish Images / Publish executor (amd64) (push) Successful in 46s
Publish Images / Publish agent (arm64) (push) Successful in 56s
Publish Images / Publish api (arm64) (push) Successful in 1m52s
Publish Images / Publish executor (arm64) (push) Successful in 2m2s
Publish Images / Publish notifier (arm64) (push) Successful in 2m3s
Publish Images / Publish manifest attune/agent (push) Successful in 6s
Publish Images / Publish manifest attune/api (push) Successful in 11s
Publish Images / Publish manifest attune/executor (push) Successful in 10s
Publish Images / Publish manifest attune/notifier (push) Successful in 8s
Publish Images / Publish manifest attune/web (push) Successful in 8s
This commit is contained in:
60
docker/distributable/packs/core/runtimes/README.md
Normal file
60
docker/distributable/packs/core/runtimes/README.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# Core Pack Runtime Metadata
|
||||
|
||||
This directory contains runtime metadata YAML files for the core pack. Each file defines a runtime environment that can be used to execute actions and sensors.
|
||||
|
||||
## File Structure
|
||||
|
||||
Each runtime YAML file contains only the fields that are stored in the database:
|
||||
|
||||
- `ref` - Unique runtime reference (format: pack.name)
|
||||
- `pack_ref` - Pack this runtime belongs to
|
||||
- `name` - Human-readable runtime name
|
||||
- `description` - Brief description of the runtime
|
||||
- `distributions` - Runtime verification and capability metadata (JSONB)
|
||||
- `installation` - Installation requirements and metadata (JSONB)
|
||||
- `execution_config` - Interpreter, environment, dependency, and execution-time env var metadata
|
||||
|
||||
## `execution_config.env_vars`
|
||||
|
||||
Runtime authors can declare execution-time environment variables in a purely declarative way.
|
||||
|
||||
String values replace the variable entirely:
|
||||
|
||||
```yaml
|
||||
env_vars:
|
||||
NODE_PATH: "{env_dir}/node_modules"
|
||||
```
|
||||
|
||||
Object values support merge semantics against an existing value already present in the execution environment:
|
||||
|
||||
```yaml
|
||||
env_vars:
|
||||
PYTHONPATH:
|
||||
operation: prepend
|
||||
value: "{pack_dir}/lib"
|
||||
separator: ":"
|
||||
```
|
||||
|
||||
Supported operations:
|
||||
|
||||
- `set` - Replace the variable with the resolved value
|
||||
- `prepend` - Add the resolved value before the existing value
|
||||
- `append` - Add the resolved value after the existing value
|
||||
|
||||
Supported template variables:
|
||||
|
||||
- `{pack_dir}`
|
||||
- `{env_dir}`
|
||||
- `{interpreter}`
|
||||
- `{manifest_path}`
|
||||
|
||||
## Available Runtimes
|
||||
|
||||
- **python.yaml** - Python 3 runtime for actions and sensors
|
||||
- **nodejs.yaml** - Node.js runtime for JavaScript-based actions and sensors
|
||||
- **shell.yaml** - Shell (bash/sh) runtime - always available
|
||||
- **native.yaml** - Native compiled runtime (Rust, Go, C, etc.) - executes binaries directly without an interpreter
|
||||
|
||||
## Loading
|
||||
|
||||
Runtime metadata files are loaded by the pack loading system and inserted into the `runtime` table in the database.
|
||||
48
docker/distributable/packs/core/runtimes/go.yaml
Normal file
48
docker/distributable/packs/core/runtimes/go.yaml
Normal file
@@ -0,0 +1,48 @@
|
||||
ref: core.go
|
||||
pack_ref: core
|
||||
name: Go
|
||||
aliases: [go, golang]
|
||||
description: Go runtime for compiling and running Go scripts and programs
|
||||
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: go
|
||||
args:
|
||||
- "version"
|
||||
exit_code: 0
|
||||
pattern: "go\\d+\\."
|
||||
priority: 1
|
||||
min_version: "1.18"
|
||||
recommended_version: "1.22"
|
||||
|
||||
installation:
|
||||
package_managers:
|
||||
- apt
|
||||
- snap
|
||||
- brew
|
||||
module_support: true
|
||||
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: go
|
||||
args:
|
||||
- "run"
|
||||
file_extension: ".go"
|
||||
environment:
|
||||
env_type: gopath
|
||||
dir_name: gopath
|
||||
create_command:
|
||||
- sh
|
||||
- "-c"
|
||||
- "mkdir -p {env_dir}"
|
||||
interpreter_path: null
|
||||
dependencies:
|
||||
manifest_file: go.mod
|
||||
install_command:
|
||||
- sh
|
||||
- "-c"
|
||||
- "cd {pack_dir} && GOPATH={env_dir} go mod download 2>/dev/null || true"
|
||||
env_vars:
|
||||
GOPATH: "{env_dir}"
|
||||
GOMODCACHE: "{env_dir}/pkg/mod"
|
||||
31
docker/distributable/packs/core/runtimes/java.yaml
Normal file
31
docker/distributable/packs/core/runtimes/java.yaml
Normal file
@@ -0,0 +1,31 @@
|
||||
ref: core.java
|
||||
pack_ref: core
|
||||
name: Java
|
||||
aliases: [java, jdk, openjdk]
|
||||
description: Java runtime for executing Java programs and scripts
|
||||
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: java
|
||||
args:
|
||||
- "-version"
|
||||
exit_code: 0
|
||||
pattern: "version \"\\d+"
|
||||
priority: 1
|
||||
min_version: "11"
|
||||
recommended_version: "21"
|
||||
|
||||
installation:
|
||||
interpreters:
|
||||
- java
|
||||
- javac
|
||||
package_managers:
|
||||
- maven
|
||||
- gradle
|
||||
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: java
|
||||
args: []
|
||||
file_extension: ".java"
|
||||
21
docker/distributable/packs/core/runtimes/native.yaml
Normal file
21
docker/distributable/packs/core/runtimes/native.yaml
Normal file
@@ -0,0 +1,21 @@
|
||||
ref: core.native
|
||||
pack_ref: core
|
||||
name: Native
|
||||
aliases: [native, builtin, standalone]
|
||||
description: Native compiled runtime (Rust, Go, C, etc.) - executes binaries directly without an interpreter
|
||||
|
||||
distributions:
|
||||
verification:
|
||||
always_available: true
|
||||
check_required: false
|
||||
languages:
|
||||
- rust
|
||||
- go
|
||||
- c
|
||||
- c++
|
||||
|
||||
installation:
|
||||
build_required: false
|
||||
system_native: true
|
||||
|
||||
execution_config: {}
|
||||
180
docker/distributable/packs/core/runtimes/nodejs.yaml
Normal file
180
docker/distributable/packs/core/runtimes/nodejs.yaml
Normal file
@@ -0,0 +1,180 @@
|
||||
ref: core.nodejs
|
||||
pack_ref: core
|
||||
name: Node.js
|
||||
aliases: [node, nodejs, "node.js"]
|
||||
description: Node.js runtime for JavaScript-based actions and sensors
|
||||
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: node
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "v\\d+\\.\\d+\\.\\d+"
|
||||
priority: 1
|
||||
min_version: "16.0.0"
|
||||
recommended_version: "20.0.0"
|
||||
|
||||
installation:
|
||||
package_managers:
|
||||
- npm
|
||||
- yarn
|
||||
- pnpm
|
||||
module_support: true
|
||||
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: node
|
||||
args: []
|
||||
file_extension: ".js"
|
||||
environment:
|
||||
env_type: node_modules
|
||||
dir_name: node_modules
|
||||
create_command:
|
||||
- sh
|
||||
- "-c"
|
||||
- "mkdir -p {env_dir} && cp {manifest_path} {env_dir}/ 2>/dev/null || true"
|
||||
interpreter_path: null
|
||||
dependencies:
|
||||
manifest_file: package.json
|
||||
install_command:
|
||||
- npm
|
||||
- install
|
||||
- "--prefix"
|
||||
- "{env_dir}"
|
||||
env_vars:
|
||||
NODE_PATH: "{env_dir}/node_modules"
|
||||
|
||||
# Version-specific execution configurations.
|
||||
# Each entry describes how to invoke a particular Node.js version.
|
||||
# The worker uses these when an action declares a runtime_version constraint
|
||||
# (e.g., runtime_version: ">=20"). The highest available version satisfying
|
||||
# the constraint is selected, and its execution_config replaces the parent's.
|
||||
versions:
|
||||
- version: "18"
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: node18
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "v18\\."
|
||||
priority: 1
|
||||
- binary: node
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "v18\\."
|
||||
priority: 2
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: node18
|
||||
args: []
|
||||
file_extension: ".js"
|
||||
environment:
|
||||
env_type: node_modules
|
||||
dir_name: node_modules
|
||||
create_command:
|
||||
- sh
|
||||
- "-c"
|
||||
- "mkdir -p {env_dir} && cp {manifest_path} {env_dir}/ 2>/dev/null || true"
|
||||
interpreter_path: null
|
||||
dependencies:
|
||||
manifest_file: package.json
|
||||
install_command:
|
||||
- npm
|
||||
- install
|
||||
- "--prefix"
|
||||
- "{env_dir}"
|
||||
env_vars:
|
||||
NODE_PATH: "{env_dir}/node_modules"
|
||||
meta:
|
||||
lts_codename: "hydrogen"
|
||||
eol: "2025-04-30"
|
||||
|
||||
- version: "20"
|
||||
is_default: true
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: node20
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "v20\\."
|
||||
priority: 1
|
||||
- binary: node
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "v20\\."
|
||||
priority: 2
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: node20
|
||||
args: []
|
||||
file_extension: ".js"
|
||||
environment:
|
||||
env_type: node_modules
|
||||
dir_name: node_modules
|
||||
create_command:
|
||||
- sh
|
||||
- "-c"
|
||||
- "mkdir -p {env_dir} && cp {manifest_path} {env_dir}/ 2>/dev/null || true"
|
||||
interpreter_path: null
|
||||
dependencies:
|
||||
manifest_file: package.json
|
||||
install_command:
|
||||
- npm
|
||||
- install
|
||||
- "--prefix"
|
||||
- "{env_dir}"
|
||||
env_vars:
|
||||
NODE_PATH: "{env_dir}/node_modules"
|
||||
meta:
|
||||
lts_codename: "iron"
|
||||
eol: "2026-04-30"
|
||||
|
||||
- version: "22"
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: node22
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "v22\\."
|
||||
priority: 1
|
||||
- binary: node
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "v22\\."
|
||||
priority: 2
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: node22
|
||||
args: []
|
||||
file_extension: ".js"
|
||||
environment:
|
||||
env_type: node_modules
|
||||
dir_name: node_modules
|
||||
create_command:
|
||||
- sh
|
||||
- "-c"
|
||||
- "mkdir -p {env_dir} && cp {manifest_path} {env_dir}/ 2>/dev/null || true"
|
||||
interpreter_path: null
|
||||
dependencies:
|
||||
manifest_file: package.json
|
||||
install_command:
|
||||
- npm
|
||||
- install
|
||||
- "--prefix"
|
||||
- "{env_dir}"
|
||||
env_vars:
|
||||
NODE_PATH: "{env_dir}/node_modules"
|
||||
meta:
|
||||
lts_codename: "jod"
|
||||
eol: "2027-04-30"
|
||||
47
docker/distributable/packs/core/runtimes/perl.yaml
Normal file
47
docker/distributable/packs/core/runtimes/perl.yaml
Normal file
@@ -0,0 +1,47 @@
|
||||
ref: core.perl
|
||||
pack_ref: core
|
||||
name: Perl
|
||||
aliases: [perl, perl5]
|
||||
description: Perl runtime for script execution with optional CPAN dependency management
|
||||
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: perl
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "perl.*v\\d+\\."
|
||||
priority: 1
|
||||
min_version: "5.20"
|
||||
recommended_version: "5.38"
|
||||
|
||||
installation:
|
||||
package_managers:
|
||||
- cpanm
|
||||
- cpan
|
||||
interpreters:
|
||||
- perl
|
||||
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: perl
|
||||
args: []
|
||||
file_extension: ".pl"
|
||||
environment:
|
||||
env_type: local_lib
|
||||
dir_name: perl5
|
||||
create_command:
|
||||
- sh
|
||||
- "-c"
|
||||
- "mkdir -p {env_dir}/lib/perl5"
|
||||
interpreter_path: null
|
||||
dependencies:
|
||||
manifest_file: cpanfile
|
||||
install_command:
|
||||
- sh
|
||||
- "-c"
|
||||
- "cd {pack_dir} && PERL5LIB={env_dir}/lib/perl5 PERL_LOCAL_LIB_ROOT={env_dir} cpanm --local-lib {env_dir} --installdeps --quiet . 2>/dev/null || true"
|
||||
env_vars:
|
||||
PERL5LIB: "{env_dir}/lib/perl5"
|
||||
PERL_LOCAL_LIB_ROOT: "{env_dir}"
|
||||
191
docker/distributable/packs/core/runtimes/python.yaml
Normal file
191
docker/distributable/packs/core/runtimes/python.yaml
Normal file
@@ -0,0 +1,191 @@
|
||||
ref: core.python
|
||||
pack_ref: core
|
||||
name: Python
|
||||
aliases: [python, python3]
|
||||
description: Python 3 runtime for actions and sensors with automatic environment management
|
||||
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: python3
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "Python 3\\."
|
||||
priority: 1
|
||||
- binary: python
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "Python 3\\."
|
||||
priority: 2
|
||||
min_version: "3.8"
|
||||
recommended_version: "3.12"
|
||||
|
||||
installation:
|
||||
package_managers:
|
||||
- pip
|
||||
- pipenv
|
||||
- poetry
|
||||
virtual_env_support: true
|
||||
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: python3
|
||||
args:
|
||||
- "-u"
|
||||
file_extension: ".py"
|
||||
environment:
|
||||
env_type: virtualenv
|
||||
dir_name: ".venv"
|
||||
create_command:
|
||||
- python3
|
||||
- "-m"
|
||||
- venv
|
||||
- "--copies"
|
||||
- "{env_dir}"
|
||||
interpreter_path: "{env_dir}/bin/python3"
|
||||
dependencies:
|
||||
manifest_file: requirements.txt
|
||||
install_command:
|
||||
- "{interpreter}"
|
||||
- "-m"
|
||||
- pip
|
||||
- install
|
||||
- "-r"
|
||||
- "{manifest_path}"
|
||||
env_vars:
|
||||
PYTHONPATH:
|
||||
operation: prepend
|
||||
value: "{pack_dir}/lib"
|
||||
separator: ":"
|
||||
|
||||
# Version-specific execution configurations.
|
||||
# Each entry describes how to invoke a particular Python version.
|
||||
# The worker uses these when an action declares a runtime_version constraint
|
||||
# (e.g., runtime_version: ">=3.12"). The highest available version satisfying
|
||||
# the constraint is selected, and its execution_config replaces the parent's.
|
||||
versions:
|
||||
- version: "3.11"
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: python3.11
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "Python 3\\.11\\."
|
||||
priority: 1
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: python3.11
|
||||
args:
|
||||
- "-u"
|
||||
file_extension: ".py"
|
||||
environment:
|
||||
env_type: virtualenv
|
||||
dir_name: ".venv"
|
||||
create_command:
|
||||
- python3.11
|
||||
- "-m"
|
||||
- venv
|
||||
- "--copies"
|
||||
- "{env_dir}"
|
||||
interpreter_path: "{env_dir}/bin/python3.11"
|
||||
dependencies:
|
||||
manifest_file: requirements.txt
|
||||
install_command:
|
||||
- "{interpreter}"
|
||||
- "-m"
|
||||
- pip
|
||||
- install
|
||||
- "-r"
|
||||
- "{manifest_path}"
|
||||
env_vars:
|
||||
PYTHONPATH:
|
||||
operation: prepend
|
||||
value: "{pack_dir}/lib"
|
||||
separator: ":"
|
||||
|
||||
- version: "3.12"
|
||||
is_default: true
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: python3.12
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "Python 3\\.12\\."
|
||||
priority: 1
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: python3.12
|
||||
args:
|
||||
- "-u"
|
||||
file_extension: ".py"
|
||||
environment:
|
||||
env_type: virtualenv
|
||||
dir_name: ".venv"
|
||||
create_command:
|
||||
- python3.12
|
||||
- "-m"
|
||||
- venv
|
||||
- "--copies"
|
||||
- "{env_dir}"
|
||||
interpreter_path: "{env_dir}/bin/python3.12"
|
||||
dependencies:
|
||||
manifest_file: requirements.txt
|
||||
install_command:
|
||||
- "{interpreter}"
|
||||
- "-m"
|
||||
- pip
|
||||
- install
|
||||
- "-r"
|
||||
- "{manifest_path}"
|
||||
env_vars:
|
||||
PYTHONPATH:
|
||||
operation: prepend
|
||||
value: "{pack_dir}/lib"
|
||||
separator: ":"
|
||||
|
||||
- version: "3.13"
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: python3.13
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "Python 3\\.13\\."
|
||||
priority: 1
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: python3.13
|
||||
args:
|
||||
- "-u"
|
||||
file_extension: ".py"
|
||||
environment:
|
||||
env_type: virtualenv
|
||||
dir_name: ".venv"
|
||||
create_command:
|
||||
- python3.13
|
||||
- "-m"
|
||||
- venv
|
||||
- "--copies"
|
||||
- "{env_dir}"
|
||||
interpreter_path: "{env_dir}/bin/python3.13"
|
||||
dependencies:
|
||||
manifest_file: requirements.txt
|
||||
install_command:
|
||||
- "{interpreter}"
|
||||
- "-m"
|
||||
- pip
|
||||
- install
|
||||
- "-r"
|
||||
- "{manifest_path}"
|
||||
env_vars:
|
||||
PYTHONPATH:
|
||||
operation: prepend
|
||||
value: "{pack_dir}/lib"
|
||||
separator: ":"
|
||||
48
docker/distributable/packs/core/runtimes/r.yaml
Normal file
48
docker/distributable/packs/core/runtimes/r.yaml
Normal file
@@ -0,0 +1,48 @@
|
||||
ref: core.r
|
||||
pack_ref: core
|
||||
name: R
|
||||
aliases: [r, rscript]
|
||||
description: R runtime for statistical computing and data analysis scripts
|
||||
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: Rscript
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "\\d+\\.\\d+\\.\\d+"
|
||||
priority: 1
|
||||
min_version: "4.0.0"
|
||||
recommended_version: "4.4.0"
|
||||
|
||||
installation:
|
||||
package_managers:
|
||||
- install.packages
|
||||
- renv
|
||||
interpreters:
|
||||
- Rscript
|
||||
- R
|
||||
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: Rscript
|
||||
args:
|
||||
- "--vanilla"
|
||||
file_extension: ".R"
|
||||
environment:
|
||||
env_type: renv
|
||||
dir_name: renv
|
||||
create_command:
|
||||
- sh
|
||||
- "-c"
|
||||
- "mkdir -p {env_dir}/library"
|
||||
interpreter_path: null
|
||||
dependencies:
|
||||
manifest_file: renv.lock
|
||||
install_command:
|
||||
- sh
|
||||
- "-c"
|
||||
- 'cd {pack_dir} && R_LIBS_USER={env_dir}/library Rscript -e "if (file.exists(''renv.lock'')) renv::restore(library=''{env_dir}/library'', prompt=FALSE)" 2>/dev/null || true'
|
||||
env_vars:
|
||||
R_LIBS_USER: "{env_dir}/library"
|
||||
49
docker/distributable/packs/core/runtimes/ruby.yaml
Normal file
49
docker/distributable/packs/core/runtimes/ruby.yaml
Normal file
@@ -0,0 +1,49 @@
|
||||
ref: core.ruby
|
||||
pack_ref: core
|
||||
name: Ruby
|
||||
aliases: [ruby, rb]
|
||||
description: Ruby runtime for script execution with automatic gem environment management
|
||||
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: ruby
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
pattern: "ruby \\d+\\."
|
||||
priority: 1
|
||||
min_version: "2.7"
|
||||
recommended_version: "3.2"
|
||||
|
||||
installation:
|
||||
package_managers:
|
||||
- gem
|
||||
- bundler
|
||||
interpreters:
|
||||
- ruby
|
||||
portable: false
|
||||
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: ruby
|
||||
args: []
|
||||
file_extension: ".rb"
|
||||
environment:
|
||||
env_type: gem_home
|
||||
dir_name: gems
|
||||
create_command:
|
||||
- sh
|
||||
- "-c"
|
||||
- "mkdir -p {env_dir}/gems"
|
||||
interpreter_path: null
|
||||
dependencies:
|
||||
manifest_file: Gemfile
|
||||
install_command:
|
||||
- sh
|
||||
- "-c"
|
||||
- "cd {pack_dir} && GEM_HOME={env_dir}/gems GEM_PATH={env_dir}/gems bundle install --quiet 2>/dev/null || true"
|
||||
env_vars:
|
||||
GEM_HOME: "{env_dir}/gems"
|
||||
GEM_PATH: "{env_dir}/gems"
|
||||
BUNDLE_PATH: "{env_dir}/gems"
|
||||
39
docker/distributable/packs/core/runtimes/shell.yaml
Normal file
39
docker/distributable/packs/core/runtimes/shell.yaml
Normal file
@@ -0,0 +1,39 @@
|
||||
ref: core.shell
|
||||
pack_ref: core
|
||||
name: Shell
|
||||
aliases: [shell, bash, sh]
|
||||
description: Shell (bash/sh) runtime for script execution - always available
|
||||
|
||||
distributions:
|
||||
verification:
|
||||
commands:
|
||||
- binary: sh
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
optional: true
|
||||
priority: 1
|
||||
- binary: bash
|
||||
args:
|
||||
- "--version"
|
||||
exit_code: 0
|
||||
optional: true
|
||||
priority: 2
|
||||
always_available: true
|
||||
|
||||
installation:
|
||||
interpreters:
|
||||
- sh
|
||||
- bash
|
||||
- dash
|
||||
portable: true
|
||||
|
||||
execution_config:
|
||||
interpreter:
|
||||
binary: "/bin/bash"
|
||||
args: []
|
||||
file_extension: ".sh"
|
||||
inline_execution:
|
||||
strategy: temp_file
|
||||
extension: ".sh"
|
||||
inject_shell_helpers: true
|
||||
Reference in New Issue
Block a user