Build branch main with version main (952e20a)

Build pipeline: viash-hub.craftbox.main-sxn6z

Source commit: 952e20a6a8

Source message: Add check_disk_space component (#14)

* add check resources component (move from toolbox)

* add changelog entry

* rename component

* Update CHANGELOG.md

---------

Co-authored-by: Dries Schaumont <5946712+DriesSchaumont@users.noreply.github.com>
This commit is contained in:
CI
2025-06-26 14:36:55 +00:00
parent dcf61f0448
commit 877514552b
30 changed files with 5783 additions and 40 deletions

View File

@@ -12,6 +12,9 @@
* `move_files_to_directory`: Publish one or multiple files to an output directory (PR #10).
* `check_disk_space`: Add functionality to check available system resources (PR #14).
## MINOR CHANGES
* Add documentation to multiple components (PR #9).

View File

@@ -0,0 +1,56 @@
name: check_disk_space
description: |
Check for available disk space on the system.
This component is only useful when working with persistent storage environments
where all workflow steps execute on the same instance or share the same
storage volume. That is, running thus component on e.g. AWS Batch or
other cloud-based systems will not work as expected, since each step
can run on a different instance and resources will not be shared.
For distributed environments, consider integrating resource checks directly
into the components that will actually consume the storage, rather than
using this standalone check.
argument_groups:
- name: Inputs
arguments:
- name: --tmp_space_required
type: integer
description: Temporary space required in MB.
required: false
default: 1000
- name: --publish_space_required
type: integer
description: Publish space required in MB.
required: false
default: 500
- name: --publish_dir
type: file
description: Directory where workflow outputs will be published.
required: false
- name: Outputs
arguments:
- name: --output
type: file
direction: output
description: Output file containing system resources details.
required: false
default: output.txt
resources:
- type: bash_script
path: script.sh
test_resources:
- type: bash_script
path: test.sh
engines:
- type: docker
image: bash:latest
runners:
- type: executable
- type: nextflow

View File

@@ -0,0 +1,19 @@
#!/bin/bash
# Check temporary directory space
tmp_avail_kb=$(df -k "$meta_temp_dir" | awk 'NR==2 {print $4}')
tmp_avail_mb=$((tmp_avail_kb / 1024))
echo -e "\nTemporary directory ($meta_temp_dir) available space: ${tmp_avail_mb}MB" >> "$par_output"
if [ "$tmp_avail_mb" -lt "$par_tmp_space_required" ]; then
echo "WARNING: Available temporary space (${tmp_avail_mb}MB) is less than required (${par_tmp_space_required}MB)" | tee -a "$par_output"
fi
# Check publish directory space if specified
publish_avail_kb=$(df -k "$par_publish_dir" | awk 'NR==2 {print $4}')
publish_avail_mb=$((publish_avail_kb / 1024))
echo -e "\nPublish directory ($par_publish_dir) available space: ${publish_avail_mb}MB" >> "$par_output"
if [ "$publish_avail_mb" -lt "$par_publish_space_required" ]; then
echo "WARNING: Available publish space (${publish_avail_mb}MB) is less than required (${par_publish_space_required}MB)" | tee -a "$par_output"
fi

View File

@@ -0,0 +1,92 @@
#!/bin/bash
set -eo pipefail
TMPDIR=$(mktemp -d "$meta_temp_dir/$meta_name-XXXXXX")
function clean_up {
[[ -d "$TMPDIR" ]] && rm -rf "$TMPDIR"
}
trap clean_up EXIT
# Create test directories
mkdir -p "$TMPDIR/publish"
echo "Test 1: Both directories have enough space"
# Define normal space df function
df() {
echo "Filesystem 1K-blocks Used Available Use% Mounted on"
echo "ext4 20485760 5000000 15485760 25% $2"
}
# Export the function
export -f df
# Run the component
"$meta_executable" \
--publish_dir "$TMPDIR/publish" \
--tmp_space_required "500" \
--publish_space_required "300" \
--output "$TMPDIR/output1.txt"
# Verify Test 1 - should have no warnings
if grep -q "WARNING:" "$TMPDIR/output1.txt"; then
echo "FAIL: Unexpected warning in normal space test"
else
echo "PASS: No warnings with sufficient space"
fi
echo "Test 2: Temporary directory doesn't have enough space"
# Define low temp space df function
df() {
if [[ "$2" == "$meta_temp_dir" ]]; then
echo "Filesystem 1K-blocks Used Available Use% Mounted on"
echo "tmpfs 10485760 5000000 921600 50% $2"
else
echo "Filesystem 1K-blocks Used Available Use% Mounted on"
echo "ext4 20485760 5000000 15485760 25% $2"
fi
}
# Export the function
export -f df
# Run the component
"$meta_executable" \
--publish_dir "$TMPDIR/publish" \
--tmp_space_required "1000" \
--publish_space_required "300" \
--output "$TMPDIR/output2.txt"
# Verify Test 2
if grep -q "WARNING: Available temporary space" "$TMPDIR/output2.txt"; then
echo "PASS: Low temp space warning detected"
else
echo "FAIL: No warning detected for low temp space"
fi
echo "Test 3: Publish directory doesn't have enough space"
# Define low publish space df function
df() {
if [[ "$2" =~ /publish ]]; then
echo "Filesystem 1K-blocks Used Available Use% Mounted on"
echo "ext4 20485760 16384000 409600 80% $2"
else
echo "Filesystem 1K-blocks Used Available Use% Mounted on"
echo "ext4 20485760 5000000 15485760 25% $2"
fi
}
# Export the function
export -f df
# Run the component
"$meta_executable" \
--publish_dir "$TMPDIR/publish" \
--tmp_space_required "500" \
--publish_space_required "500" \
--output "$TMPDIR/output3.txt"
# Verify Test 3
if grep -q "WARNING: Available publish space" "$TMPDIR/output3.txt"; then
echo "PASS: Low publish space warning detected"
else
echo "FAIL: No warning detected for low publish space"
fi
echo "All tests completed"
exit 0

View File

@@ -0,0 +1,198 @@
name: "check_disk_space"
version: "main"
argument_groups:
- name: "Inputs"
arguments:
- type: "integer"
name: "--tmp_space_required"
description: "Temporary space required in MB."
info: null
default:
- 1000
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--publish_space_required"
description: "Publish space required in MB."
info: null
default:
- 500
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--publish_dir"
description: "Directory where workflow outputs will be published."
info: null
must_exist: true
create_parent: true
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- name: "Outputs"
arguments:
- type: "file"
name: "--output"
description: "Output file containing system resources details."
info: null
default:
- "output.txt"
must_exist: true
create_parent: true
required: false
direction: "output"
multiple: false
multiple_sep: ";"
resources:
- type: "bash_script"
path: "script.sh"
is_executable: true
description: "Check for available disk space on the system.\n\nThis component is only\
\ useful when working with persistent storage environments\nwhere all workflow steps\
\ execute on the same instance or share the same\nstorage volume. That is, running\
\ thus component on e.g. AWS Batch or\nother cloud-based systems will not work as\
\ expected, since each step\ncan run on a different instance and resources will\
\ not be shared.\n\nFor distributed environments, consider integrating resource\
\ checks directly\ninto the components that will actually consume the storage, rather\
\ than\nusing this standalone check.\n"
test_resources:
- type: "bash_script"
path: "test.sh"
is_executable: true
info: null
status: "enabled"
scope:
image: "public"
target: "public"
requirements:
commands:
- "ps"
license: "MIT"
links:
repository: "https://github.com/viash-hub/craftbox"
runners:
- type: "executable"
id: "executable"
docker_setup_strategy: "ifneedbepullelsecachedbuild"
- type: "nextflow"
id: "nextflow"
directives:
tag: "$id"
auto:
simplifyInput: true
simplifyOutput: false
transcript: false
publish: false
config:
labels:
mem1gb: "memory = 1000000000.B"
mem2gb: "memory = 2000000000.B"
mem5gb: "memory = 5000000000.B"
mem10gb: "memory = 10000000000.B"
mem20gb: "memory = 20000000000.B"
mem50gb: "memory = 50000000000.B"
mem100gb: "memory = 100000000000.B"
mem200gb: "memory = 200000000000.B"
mem500gb: "memory = 500000000000.B"
mem1tb: "memory = 1000000000000.B"
mem2tb: "memory = 2000000000000.B"
mem5tb: "memory = 5000000000000.B"
mem10tb: "memory = 10000000000000.B"
mem20tb: "memory = 20000000000000.B"
mem50tb: "memory = 50000000000000.B"
mem100tb: "memory = 100000000000000.B"
mem200tb: "memory = 200000000000000.B"
mem500tb: "memory = 500000000000000.B"
mem1gib: "memory = 1073741824.B"
mem2gib: "memory = 2147483648.B"
mem4gib: "memory = 4294967296.B"
mem8gib: "memory = 8589934592.B"
mem16gib: "memory = 17179869184.B"
mem32gib: "memory = 34359738368.B"
mem64gib: "memory = 68719476736.B"
mem128gib: "memory = 137438953472.B"
mem256gib: "memory = 274877906944.B"
mem512gib: "memory = 549755813888.B"
mem1tib: "memory = 1099511627776.B"
mem2tib: "memory = 2199023255552.B"
mem4tib: "memory = 4398046511104.B"
mem8tib: "memory = 8796093022208.B"
mem16tib: "memory = 17592186044416.B"
mem32tib: "memory = 35184372088832.B"
mem64tib: "memory = 70368744177664.B"
mem128tib: "memory = 140737488355328.B"
mem256tib: "memory = 281474976710656.B"
mem512tib: "memory = 562949953421312.B"
cpu1: "cpus = 1"
cpu2: "cpus = 2"
cpu5: "cpus = 5"
cpu10: "cpus = 10"
cpu20: "cpus = 20"
cpu50: "cpus = 50"
cpu100: "cpus = 100"
cpu200: "cpus = 200"
cpu500: "cpus = 500"
cpu1000: "cpus = 1000"
debug: false
container: "docker"
engines:
- type: "docker"
id: "docker"
image: "bash:latest"
target_registry: "images.viash-hub.com"
target_tag: "main"
namespace_separator: "/"
entrypoint: []
cmd: null
- type: "native"
id: "native"
build_info:
config: "src/check_disk_space/config.vsh.yaml"
runner: "executable"
engine: "docker|native"
output: "target/executable/check_disk_space"
executable: "target/executable/check_disk_space/check_disk_space"
viash_version: "0.9.4"
git_commit: "952e20a6a88b08cfb46a57bfdb228d82c01e4748"
git_remote: "https://github.com/viash-hub/craftbox"
git_tag: "v0.1.0-8-g952e20a"
package_config:
name: "craftbox"
version: "main"
summary: "A collection of custom-tailored scripts and applied utilities built with\
\ Viash.\n"
description: "`craftbox` is a curated collection of custom scripts and utilities\
\ designed to tackle context-specific tasks.\n\nEmphasizing the Viash principles,\
\ `craftbox` components aim for **reusability**, **reproducibility**, and adherence\
\ to **best practices**. Key features generally include:\n\n* **Standalone & Nextflow\
\ Ready:** Components are built to run directly via the command line or be smoothly\
\ integrated into Nextflow workflows.\n* **Custom Implementations:** Contains\
\ scripts and tools developed for particular tasks that may not be found in broader\
\ collections.\n* **High Quality Standards (promoted by Viash):**\n * Clear\
\ documentation for components and their parameters.\n * Full exposure of underlying\
\ script/tool arguments for fine-grained control.\n * Containerized (Docker)\
\ to ensure dependency management and a consistent, reproducible runtime environment.\n\
\ * Unit tested where applicable to ensure components function as expected.\n"
info: null
viash_version: "0.9.4"
source: "src"
target: "target"
config_mods:
- ".requirements.commands := ['ps']\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'main'"
keywords:
- "scripts"
- "custom"
- "implementations"
- "utilities"
license: "MIT"
organization: "vsh"
links:
repository: "https://github.com/viash-hub/craftbox"
issue_tracker: "https://github.com/viash-hub/craftbox/issues"

File diff suppressed because it is too large Load Diff

View File

@@ -175,9 +175,9 @@ build_info:
output: "target/executable/concat_text"
executable: "target/executable/concat_text/concat_text"
viash_version: "0.9.4"
git_commit: "a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
git_commit: "952e20a6a88b08cfb46a57bfdb228d82c01e4748"
git_remote: "https://github.com/viash-hub/craftbox"
git_tag: "v0.1.0-7-ga80fa3e"
git_tag: "v0.1.0-8-g952e20a"
package_config:
name: "craftbox"
version: "main"

View File

@@ -453,9 +453,9 @@ RUN apk add --no-cache bash procps file
LABEL org.opencontainers.image.authors="Toni Verbeiren, Dries Schaumont"
LABEL org.opencontainers.image.description="Companion container for running component concat_text"
LABEL org.opencontainers.image.created="2025-06-25T13:20:53Z"
LABEL org.opencontainers.image.created="2025-06-26T14:28:24Z"
LABEL org.opencontainers.image.source="https://github.com/viash-hub/craftbox"
LABEL org.opencontainers.image.revision="a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
LABEL org.opencontainers.image.revision="952e20a6a88b08cfb46a57bfdb228d82c01e4748"
LABEL org.opencontainers.image.version="main"
VIASHDOCKER

View File

@@ -257,9 +257,9 @@ build_info:
output: "target/executable/csv2fasta"
executable: "target/executable/csv2fasta/csv2fasta"
viash_version: "0.9.4"
git_commit: "a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
git_commit: "952e20a6a88b08cfb46a57bfdb228d82c01e4748"
git_remote: "https://github.com/viash-hub/craftbox"
git_tag: "v0.1.0-7-ga80fa3e"
git_tag: "v0.1.0-8-g952e20a"
package_config:
name: "craftbox"
version: "main"

View File

@@ -458,9 +458,9 @@ RUN pip install --upgrade pip && \
LABEL org.opencontainers.image.authors="Dries Schaumont, Robrecht Cannoodt"
LABEL org.opencontainers.image.description="Companion container for running component csv2fasta"
LABEL org.opencontainers.image.created="2025-06-25T13:20:53Z"
LABEL org.opencontainers.image.created="2025-06-26T14:28:24Z"
LABEL org.opencontainers.image.source="https://github.com/viash-hub/craftbox"
LABEL org.opencontainers.image.revision="a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
LABEL org.opencontainers.image.revision="952e20a6a88b08cfb46a57bfdb228d82c01e4748"
LABEL org.opencontainers.image.version="main"
VIASHDOCKER

View File

@@ -153,9 +153,9 @@ build_info:
output: "target/executable/move_files_to_directory"
executable: "target/executable/move_files_to_directory/move_files_to_directory"
viash_version: "0.9.4"
git_commit: "a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
git_commit: "952e20a6a88b08cfb46a57bfdb228d82c01e4748"
git_remote: "https://github.com/viash-hub/craftbox"
git_tag: "v0.1.0-7-ga80fa3e"
git_tag: "v0.1.0-8-g952e20a"
package_config:
name: "craftbox"
version: "main"

View File

@@ -454,9 +454,9 @@ RUN apt-get update && \
LABEL org.opencontainers.image.authors="Dorien Roosen"
LABEL org.opencontainers.image.description="Companion container for running component move_files_to_directory"
LABEL org.opencontainers.image.created="2025-06-25T13:20:53Z"
LABEL org.opencontainers.image.created="2025-06-26T14:28:25Z"
LABEL org.opencontainers.image.source="https://github.com/viash-hub/craftbox"
LABEL org.opencontainers.image.revision="a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
LABEL org.opencontainers.image.revision="952e20a6a88b08cfb46a57bfdb228d82c01e4748"
LABEL org.opencontainers.image.version="main"
VIASHDOCKER

View File

@@ -197,9 +197,9 @@ build_info:
output: "target/executable/sync_resources"
executable: "target/executable/sync_resources/sync_resources"
viash_version: "0.9.4"
git_commit: "a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
git_commit: "952e20a6a88b08cfb46a57bfdb228d82c01e4748"
git_remote: "https://github.com/viash-hub/craftbox"
git_tag: "v0.1.0-7-ga80fa3e"
git_tag: "v0.1.0-8-g952e20a"
package_config:
name: "craftbox"
version: "main"

View File

@@ -455,9 +455,9 @@ RUN rclone config create s3 s3 anonymous=true
RUN rclone config create gs gcs anonymous=true
LABEL org.opencontainers.image.authors="Robrecht Cannoodt, Dries Schaumont"
LABEL org.opencontainers.image.description="Companion container for running component sync_resources"
LABEL org.opencontainers.image.created="2025-06-25T13:20:53Z"
LABEL org.opencontainers.image.created="2025-06-26T14:28:25Z"
LABEL org.opencontainers.image.source="https://github.com/viash-hub/craftbox"
LABEL org.opencontainers.image.revision="a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
LABEL org.opencontainers.image.revision="952e20a6a88b08cfb46a57bfdb228d82c01e4748"
LABEL org.opencontainers.image.version="main"
VIASHDOCKER

View File

@@ -182,9 +182,9 @@ build_info:
output: "target/executable/untar"
executable: "target/executable/untar/untar"
viash_version: "0.9.4"
git_commit: "a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
git_commit: "952e20a6a88b08cfb46a57bfdb228d82c01e4748"
git_remote: "https://github.com/viash-hub/craftbox"
git_tag: "v0.1.0-7-ga80fa3e"
git_tag: "v0.1.0-8-g952e20a"
package_config:
name: "craftbox"
version: "main"

View File

@@ -455,9 +455,9 @@ RUN apt-get update && \
LABEL org.opencontainers.image.authors="Dries Schaumont, Robrecht Cannoodt"
LABEL org.opencontainers.image.description="Companion container for running component untar"
LABEL org.opencontainers.image.created="2025-06-25T13:20:53Z"
LABEL org.opencontainers.image.created="2025-06-26T14:28:25Z"
LABEL org.opencontainers.image.source="https://github.com/viash-hub/craftbox"
LABEL org.opencontainers.image.revision="a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
LABEL org.opencontainers.image.revision="952e20a6a88b08cfb46a57bfdb228d82c01e4748"
LABEL org.opencontainers.image.version="main"
VIASHDOCKER

View File

@@ -0,0 +1,198 @@
name: "check_disk_space"
version: "main"
argument_groups:
- name: "Inputs"
arguments:
- type: "integer"
name: "--tmp_space_required"
description: "Temporary space required in MB."
info: null
default:
- 1000
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "integer"
name: "--publish_space_required"
description: "Publish space required in MB."
info: null
default:
- 500
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- type: "file"
name: "--publish_dir"
description: "Directory where workflow outputs will be published."
info: null
must_exist: true
create_parent: true
required: false
direction: "input"
multiple: false
multiple_sep: ";"
- name: "Outputs"
arguments:
- type: "file"
name: "--output"
description: "Output file containing system resources details."
info: null
default:
- "output.txt"
must_exist: true
create_parent: true
required: false
direction: "output"
multiple: false
multiple_sep: ";"
resources:
- type: "bash_script"
path: "script.sh"
is_executable: true
description: "Check for available disk space on the system.\n\nThis component is only\
\ useful when working with persistent storage environments\nwhere all workflow steps\
\ execute on the same instance or share the same\nstorage volume. That is, running\
\ thus component on e.g. AWS Batch or\nother cloud-based systems will not work as\
\ expected, since each step\ncan run on a different instance and resources will\
\ not be shared.\n\nFor distributed environments, consider integrating resource\
\ checks directly\ninto the components that will actually consume the storage, rather\
\ than\nusing this standalone check.\n"
test_resources:
- type: "bash_script"
path: "test.sh"
is_executable: true
info: null
status: "enabled"
scope:
image: "public"
target: "public"
requirements:
commands:
- "ps"
license: "MIT"
links:
repository: "https://github.com/viash-hub/craftbox"
runners:
- type: "executable"
id: "executable"
docker_setup_strategy: "ifneedbepullelsecachedbuild"
- type: "nextflow"
id: "nextflow"
directives:
tag: "$id"
auto:
simplifyInput: true
simplifyOutput: false
transcript: false
publish: false
config:
labels:
mem1gb: "memory = 1000000000.B"
mem2gb: "memory = 2000000000.B"
mem5gb: "memory = 5000000000.B"
mem10gb: "memory = 10000000000.B"
mem20gb: "memory = 20000000000.B"
mem50gb: "memory = 50000000000.B"
mem100gb: "memory = 100000000000.B"
mem200gb: "memory = 200000000000.B"
mem500gb: "memory = 500000000000.B"
mem1tb: "memory = 1000000000000.B"
mem2tb: "memory = 2000000000000.B"
mem5tb: "memory = 5000000000000.B"
mem10tb: "memory = 10000000000000.B"
mem20tb: "memory = 20000000000000.B"
mem50tb: "memory = 50000000000000.B"
mem100tb: "memory = 100000000000000.B"
mem200tb: "memory = 200000000000000.B"
mem500tb: "memory = 500000000000000.B"
mem1gib: "memory = 1073741824.B"
mem2gib: "memory = 2147483648.B"
mem4gib: "memory = 4294967296.B"
mem8gib: "memory = 8589934592.B"
mem16gib: "memory = 17179869184.B"
mem32gib: "memory = 34359738368.B"
mem64gib: "memory = 68719476736.B"
mem128gib: "memory = 137438953472.B"
mem256gib: "memory = 274877906944.B"
mem512gib: "memory = 549755813888.B"
mem1tib: "memory = 1099511627776.B"
mem2tib: "memory = 2199023255552.B"
mem4tib: "memory = 4398046511104.B"
mem8tib: "memory = 8796093022208.B"
mem16tib: "memory = 17592186044416.B"
mem32tib: "memory = 35184372088832.B"
mem64tib: "memory = 70368744177664.B"
mem128tib: "memory = 140737488355328.B"
mem256tib: "memory = 281474976710656.B"
mem512tib: "memory = 562949953421312.B"
cpu1: "cpus = 1"
cpu2: "cpus = 2"
cpu5: "cpus = 5"
cpu10: "cpus = 10"
cpu20: "cpus = 20"
cpu50: "cpus = 50"
cpu100: "cpus = 100"
cpu200: "cpus = 200"
cpu500: "cpus = 500"
cpu1000: "cpus = 1000"
debug: false
container: "docker"
engines:
- type: "docker"
id: "docker"
image: "bash:latest"
target_registry: "images.viash-hub.com"
target_tag: "main"
namespace_separator: "/"
entrypoint: []
cmd: null
- type: "native"
id: "native"
build_info:
config: "src/check_disk_space/config.vsh.yaml"
runner: "nextflow"
engine: "docker|native"
output: "target/nextflow/check_disk_space"
executable: "target/nextflow/check_disk_space/main.nf"
viash_version: "0.9.4"
git_commit: "952e20a6a88b08cfb46a57bfdb228d82c01e4748"
git_remote: "https://github.com/viash-hub/craftbox"
git_tag: "v0.1.0-8-g952e20a"
package_config:
name: "craftbox"
version: "main"
summary: "A collection of custom-tailored scripts and applied utilities built with\
\ Viash.\n"
description: "`craftbox` is a curated collection of custom scripts and utilities\
\ designed to tackle context-specific tasks.\n\nEmphasizing the Viash principles,\
\ `craftbox` components aim for **reusability**, **reproducibility**, and adherence\
\ to **best practices**. Key features generally include:\n\n* **Standalone & Nextflow\
\ Ready:** Components are built to run directly via the command line or be smoothly\
\ integrated into Nextflow workflows.\n* **Custom Implementations:** Contains\
\ scripts and tools developed for particular tasks that may not be found in broader\
\ collections.\n* **High Quality Standards (promoted by Viash):**\n * Clear\
\ documentation for components and their parameters.\n * Full exposure of underlying\
\ script/tool arguments for fine-grained control.\n * Containerized (Docker)\
\ to ensure dependency management and a consistent, reproducible runtime environment.\n\
\ * Unit tested where applicable to ensure components function as expected.\n"
info: null
viash_version: "0.9.4"
source: "src"
target: "target"
config_mods:
- ".requirements.commands := ['ps']\n"
- ".engines += { type: \"native\" }"
- ".engines[.type == 'docker'].target_registry := 'images.viash-hub.com'"
- ".engines[.type == 'docker'].target_tag := 'main'"
keywords:
- "scripts"
- "custom"
- "implementations"
- "utilities"
license: "MIT"
organization: "vsh"
links:
repository: "https://github.com/viash-hub/craftbox"
issue_tracker: "https://github.com/viash-hub/craftbox/issues"

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,125 @@
manifest {
name = 'check_disk_space'
mainScript = 'main.nf'
nextflowVersion = '!>=20.12.1-edge'
version = 'main'
description = 'Check for available disk space on the system.\n\nThis component is only useful when working with persistent storage environments\nwhere all workflow steps execute on the same instance or share the same\nstorage volume. That is, running thus component on e.g. AWS Batch or\nother cloud-based systems will not work as expected, since each step\ncan run on a different instance and resources will not be shared.\n\nFor distributed environments, consider integrating resource checks directly\ninto the components that will actually consume the storage, rather than\nusing this standalone check.\n'
}
process.container = 'nextflow/bash:latest'
// detect tempdir
tempDir = java.nio.file.Paths.get(
System.getenv('NXF_TEMP') ?:
System.getenv('VIASH_TEMP') ?:
System.getenv('TEMPDIR') ?:
System.getenv('TMPDIR') ?:
'/tmp'
).toAbsolutePath()
profiles {
no_publish {
process {
withName: '.*' {
publishDir = [
enabled: false
]
}
}
}
mount_temp {
docker.temp = tempDir
podman.temp = tempDir
charliecloud.temp = tempDir
}
docker {
docker.enabled = true
// docker.userEmulation = true
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
singularity {
singularity.enabled = true
singularity.autoMounts = true
docker.enabled = false
podman.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
podman {
podman.enabled = true
docker.enabled = false
singularity.enabled = false
shifter.enabled = false
charliecloud.enabled = false
}
shifter {
shifter.enabled = true
docker.enabled = false
singularity.enabled = false
podman.enabled = false
charliecloud.enabled = false
}
charliecloud {
charliecloud.enabled = true
docker.enabled = false
singularity.enabled = false
podman.enabled = false
shifter.enabled = false
}
}
process{
withLabel: mem1gb { memory = 1000000000.B }
withLabel: mem2gb { memory = 2000000000.B }
withLabel: mem5gb { memory = 5000000000.B }
withLabel: mem10gb { memory = 10000000000.B }
withLabel: mem20gb { memory = 20000000000.B }
withLabel: mem50gb { memory = 50000000000.B }
withLabel: mem100gb { memory = 100000000000.B }
withLabel: mem200gb { memory = 200000000000.B }
withLabel: mem500gb { memory = 500000000000.B }
withLabel: mem1tb { memory = 1000000000000.B }
withLabel: mem2tb { memory = 2000000000000.B }
withLabel: mem5tb { memory = 5000000000000.B }
withLabel: mem10tb { memory = 10000000000000.B }
withLabel: mem20tb { memory = 20000000000000.B }
withLabel: mem50tb { memory = 50000000000000.B }
withLabel: mem100tb { memory = 100000000000000.B }
withLabel: mem200tb { memory = 200000000000000.B }
withLabel: mem500tb { memory = 500000000000000.B }
withLabel: mem1gib { memory = 1073741824.B }
withLabel: mem2gib { memory = 2147483648.B }
withLabel: mem4gib { memory = 4294967296.B }
withLabel: mem8gib { memory = 8589934592.B }
withLabel: mem16gib { memory = 17179869184.B }
withLabel: mem32gib { memory = 34359738368.B }
withLabel: mem64gib { memory = 68719476736.B }
withLabel: mem128gib { memory = 137438953472.B }
withLabel: mem256gib { memory = 274877906944.B }
withLabel: mem512gib { memory = 549755813888.B }
withLabel: mem1tib { memory = 1099511627776.B }
withLabel: mem2tib { memory = 2199023255552.B }
withLabel: mem4tib { memory = 4398046511104.B }
withLabel: mem8tib { memory = 8796093022208.B }
withLabel: mem16tib { memory = 17592186044416.B }
withLabel: mem32tib { memory = 35184372088832.B }
withLabel: mem64tib { memory = 70368744177664.B }
withLabel: mem128tib { memory = 140737488355328.B }
withLabel: mem256tib { memory = 281474976710656.B }
withLabel: mem512tib { memory = 562949953421312.B }
withLabel: cpu1 { cpus = 1 }
withLabel: cpu2 { cpus = 2 }
withLabel: cpu5 { cpus = 5 }
withLabel: cpu10 { cpus = 10 }
withLabel: cpu20 { cpus = 20 }
withLabel: cpu50 { cpus = 50 }
withLabel: cpu100 { cpus = 100 }
withLabel: cpu200 { cpus = 200 }
withLabel: cpu500 { cpus = 500 }
withLabel: cpu1000 { cpus = 1000 }
}

View File

@@ -0,0 +1,70 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "check_disk_space",
"description": "Check for available disk space on the system.\n\nThis component is only useful when working with persistent storage environments\nwhere all workflow steps execute on the same instance or share the same\nstorage volume. That is, running thus component on e.g. AWS Batch or\nother cloud-based systems will not work as expected, since each step\ncan run on a different instance and resources will not be shared.\n\nFor distributed environments, consider integrating resource checks directly\ninto the components that will actually consume the storage, rather than\nusing this standalone check.\n",
"type": "object",
"$defs": {
"inputs": {
"title": "Inputs",
"type": "object",
"description": "No description",
"properties": {
"tmp_space_required": {
"type": "integer",
"description": "Temporary space required in MB.",
"help_text": "Type: `integer`, multiple: `False`, default: `1000`. ",
"default": 1000
},
"publish_space_required": {
"type": "integer",
"description": "Publish space required in MB.",
"help_text": "Type: `integer`, multiple: `False`, default: `500`. ",
"default": 500
},
"publish_dir": {
"type": "string",
"format": "path",
"description": "Directory where workflow outputs will be published.",
"help_text": "Type: `file`, multiple: `False`, direction: `input`. "
}
}
},
"outputs": {
"title": "Outputs",
"type": "object",
"description": "No description",
"properties": {
"output": {
"type": "string",
"format": "path",
"description": "Output file containing system resources details.",
"help_text": "Type: `file`, multiple: `False`, default: `\"output.txt\"`, direction: `output`. ",
"default": "output.txt"
}
}
},
"nextflow input-output arguments": {
"title": "Nextflow input-output arguments",
"type": "object",
"description": "Input/output parameters for Nextflow itself. Please note that both publishDir and publish_dir are supported but at least one has to be configured.",
"properties": {
"publish_dir": {
"type": "string",
"description": "Path to an output directory.",
"help_text": "Type: `string`, multiple: `False`, required, example: `\"output/\"`. "
}
}
}
},
"allOf": [
{
"$ref": "#/$defs/inputs"
},
{
"$ref": "#/$defs/outputs"
},
{
"$ref": "#/$defs/nextflow input-output arguments"
}
]
}

View File

@@ -175,9 +175,9 @@ build_info:
output: "target/nextflow/concat_text"
executable: "target/nextflow/concat_text/main.nf"
viash_version: "0.9.4"
git_commit: "a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
git_commit: "952e20a6a88b08cfb46a57bfdb228d82c01e4748"
git_remote: "https://github.com/viash-hub/craftbox"
git_tag: "v0.1.0-7-ga80fa3e"
git_tag: "v0.1.0-8-g952e20a"
package_config:
name: "craftbox"
version: "main"

View File

@@ -3262,9 +3262,9 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/concat_text",
"viash_version" : "0.9.4",
"git_commit" : "a80fa3ef020f8124bc50d5fb85f2bdbc65235005",
"git_commit" : "952e20a6a88b08cfb46a57bfdb228d82c01e4748",
"git_remote" : "https://github.com/viash-hub/craftbox",
"git_tag" : "v0.1.0-7-ga80fa3e"
"git_tag" : "v0.1.0-8-g952e20a"
},
"package_config" : {
"name" : "craftbox",

View File

@@ -257,9 +257,9 @@ build_info:
output: "target/nextflow/csv2fasta"
executable: "target/nextflow/csv2fasta/main.nf"
viash_version: "0.9.4"
git_commit: "a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
git_commit: "952e20a6a88b08cfb46a57bfdb228d82c01e4748"
git_remote: "https://github.com/viash-hub/craftbox"
git_tag: "v0.1.0-7-ga80fa3e"
git_tag: "v0.1.0-8-g952e20a"
package_config:
name: "craftbox"
version: "main"

View File

@@ -3352,9 +3352,9 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/csv2fasta",
"viash_version" : "0.9.4",
"git_commit" : "a80fa3ef020f8124bc50d5fb85f2bdbc65235005",
"git_commit" : "952e20a6a88b08cfb46a57bfdb228d82c01e4748",
"git_remote" : "https://github.com/viash-hub/craftbox",
"git_tag" : "v0.1.0-7-ga80fa3e"
"git_tag" : "v0.1.0-8-g952e20a"
},
"package_config" : {
"name" : "craftbox",

View File

@@ -153,9 +153,9 @@ build_info:
output: "target/nextflow/move_files_to_directory"
executable: "target/nextflow/move_files_to_directory/main.nf"
viash_version: "0.9.4"
git_commit: "a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
git_commit: "952e20a6a88b08cfb46a57bfdb228d82c01e4748"
git_remote: "https://github.com/viash-hub/craftbox"
git_tag: "v0.1.0-7-ga80fa3e"
git_tag: "v0.1.0-8-g952e20a"
package_config:
name: "craftbox"
version: "main"

View File

@@ -3228,9 +3228,9 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/move_files_to_directory",
"viash_version" : "0.9.4",
"git_commit" : "a80fa3ef020f8124bc50d5fb85f2bdbc65235005",
"git_commit" : "952e20a6a88b08cfb46a57bfdb228d82c01e4748",
"git_remote" : "https://github.com/viash-hub/craftbox",
"git_tag" : "v0.1.0-7-ga80fa3e"
"git_tag" : "v0.1.0-8-g952e20a"
},
"package_config" : {
"name" : "craftbox",

View File

@@ -197,9 +197,9 @@ build_info:
output: "target/nextflow/sync_resources"
executable: "target/nextflow/sync_resources/main.nf"
viash_version: "0.9.4"
git_commit: "a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
git_commit: "952e20a6a88b08cfb46a57bfdb228d82c01e4748"
git_remote: "https://github.com/viash-hub/craftbox"
git_tag: "v0.1.0-7-ga80fa3e"
git_tag: "v0.1.0-8-g952e20a"
package_config:
name: "craftbox"
version: "main"

View File

@@ -3294,9 +3294,9 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/sync_resources",
"viash_version" : "0.9.4",
"git_commit" : "a80fa3ef020f8124bc50d5fb85f2bdbc65235005",
"git_commit" : "952e20a6a88b08cfb46a57bfdb228d82c01e4748",
"git_remote" : "https://github.com/viash-hub/craftbox",
"git_tag" : "v0.1.0-7-ga80fa3e"
"git_tag" : "v0.1.0-8-g952e20a"
},
"package_config" : {
"name" : "craftbox",

View File

@@ -182,9 +182,9 @@ build_info:
output: "target/nextflow/untar"
executable: "target/nextflow/untar/main.nf"
viash_version: "0.9.4"
git_commit: "a80fa3ef020f8124bc50d5fb85f2bdbc65235005"
git_commit: "952e20a6a88b08cfb46a57bfdb228d82c01e4748"
git_remote: "https://github.com/viash-hub/craftbox"
git_tag: "v0.1.0-7-ga80fa3e"
git_tag: "v0.1.0-8-g952e20a"
package_config:
name: "craftbox"
version: "main"

View File

@@ -3273,9 +3273,9 @@ meta = [
"engine" : "docker|native",
"output" : "target/nextflow/untar",
"viash_version" : "0.9.4",
"git_commit" : "a80fa3ef020f8124bc50d5fb85f2bdbc65235005",
"git_commit" : "952e20a6a88b08cfb46a57bfdb228d82c01e4748",
"git_remote" : "https://github.com/viash-hub/craftbox",
"git_tag" : "v0.1.0-7-ga80fa3e"
"git_tag" : "v0.1.0-8-g952e20a"
},
"package_config" : {
"name" : "craftbox",