Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion .devcontainer/codespaces-dev/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,14 @@
"version": "latest"
},
"ghcr.io/va-h/devcontainers-features/uv": {},
"ghcr.io/devcontainers/features/terraform:1": {
"version": "1.9.8",
"tflint": "none",
"terragrunt": "none"
},
"../local-features/apptainer": {},
"../local-features/tower-agent": {},
"../local-features/seqera-cli": {},
"../local-features/nextflow": {},
"../local-features/conda-channels": {},
"../local-features/uv-tools": {}
Expand All @@ -47,7 +53,8 @@
"vscode": {
"extensions": [
"nf-core.nf-core-extensionpack",
"ms-vscode.live-server"
"ms-vscode.live-server",
"hashicorp.terraform"
],
// Use Python from conda
"settings": {
Expand Down
3 changes: 2 additions & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@
"vscode": {
"extensions": [
"nf-core.nf-core-extensionpack",
"ms-vscode.live-server"
"ms-vscode.live-server",
"hashicorp.terraform"
],
// Use Python from conda
"settings": {
Expand Down
9 changes: 8 additions & 1 deletion .devcontainer/local-dev/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,14 @@
"version": "latest"
},
"ghcr.io/va-h/devcontainers-features/uv": {},
"ghcr.io/devcontainers/features/terraform:1": {
"version": "1.9.8",
"tflint": "none",
"terragrunt": "none"
},
"../local-features/apptainer": {},
"../local-features/tower-agent": {},
"../local-features/seqera-cli": {},
"../local-features/nextflow": {},
"../local-features/conda-channels": {},
"../local-features/uv-tools": {}
Expand Down Expand Up @@ -49,7 +55,8 @@
"vscode": {
"extensions": [
"nf-core.nf-core-extensionpack",
"ms-vscode.live-server"
"ms-vscode.live-server",
"hashicorp.terraform"
],
// Use Python from conda
"settings": {
Expand Down
13 changes: 13 additions & 0 deletions .devcontainer/local-features/seqera-cli/devcontainer-feature.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"id": "seqera-cli",
"name": "Install Seqera CLI (tw)",
"description": "Install the Seqera Platform CLI, tw",
"options": {
"version": {
"type": "string",
"proposals": ["latest", "0.32.0"],
"default": "0.32.0",
"description": "Select or enter a tower-cli version (without the leading v), or 'latest'."
}
}
}
39 changes: 39 additions & 0 deletions .devcontainer/local-features/seqera-cli/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
#!/usr/bin/env bash

# Install the Seqera Platform CLI (tw).
# Arch-aware so the multi-architecture image build works on both amd64 and arm64.
# tower-cli only publishes a native Linux binary for x86_64; on arm64 we install
# the architecture-independent JAR (Java is provided by the java feature).
# Only downloads files (no execution), so it is safe under QEMU emulation.
set -eu

VERSION="${VERSION:-0.32.0}"

if [ "${VERSION}" = "latest" ]; then
BASE="https://github.com/seqeralabs/tower-cli/releases/latest/download"
else
BASE="https://github.com/seqeralabs/tower-cli/releases/download/v${VERSION}"
fi

case "$(uname -m)" in
x86_64 | amd64)
echo "Installing Seqera CLI (tw) ${VERSION} native binary for x86_64..."
curl -fSL "${BASE}/tw-linux-x86_64" -o /usr/local/bin/tw
chmod +x /usr/local/bin/tw
;;
aarch64 | arm64)
# No native Linux arm64 binary is published; use the JAR via Java.
echo "Installing Seqera CLI (tw) ${VERSION} JAR for arm64..."
mkdir -p /usr/local/lib/tw
curl -fSL "${BASE}/tw-jar.jar" -o /usr/local/lib/tw/tw.jar
cat > /usr/local/bin/tw <<'EOF'
#!/usr/bin/env bash
exec java -jar /usr/local/lib/tw/tw.jar "$@"
EOF
chmod +x /usr/local/bin/tw
;;
*)
echo "Unsupported architecture: $(uname -m)" >&2
exit 1
;;
esac
2 changes: 2 additions & 0 deletions .devcontainer/local-features/uv-tools/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@
uv tool install pre-commit
uv tool install nf-core==3.5.2
uv tool install "mkdocs-quiz>=1.5.2"
# seqerakit: used by the platform_automation side quest
uv tool install "seqerakit==0.5.7"
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ indent_style = space
[*.{md,yml,yaml,html,css,scss,js}]
indent_size = 2

# Terraform's canonical `terraform fmt` style uses 2-space indentation
[*.{tf,tfvars}]
indent_size = 2

# ignore python and markdown
[*.{py,md}]
indent_style = unset
Expand Down
14 changes: 14 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,17 @@ _scripts/.venv/

# Tutorial working directories (created by learners during exercises)
hello-nf-core/core-hello/

# Terraform (platform_automation side quest)
**/.terraform/*
.terraform.lock.hcl
*.tfstate
*.tfstate.*
*.tfvars
!*.tfvars.example
crash.log
crash.*.log

# Agent/tooling local state
.omc/
**/.claude/.local/
Loading
Loading