Skip to content
Closed
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
11 changes: 11 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM mcr.microsoft.com/devcontainers/javascript-node:22

# shellcheck and shfmt are required by the test suite (see .github/workflows/verify.yml).
RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
&& apt-get -y install --no-install-recommends shellcheck shfmt \
&& apt-get clean && rm -rf /var/lib/apt/lists/*

# Pin pnpm to the version in .tool-versions. The pnpm-10 lockfile is incompatible
# with the pnpm 11 that the base image (or corepack's latest default) provides, so
# install the exact version globally. The repo enforces pnpm via package.json preinstall.
RUN npm install -g pnpm@10.12.1
12 changes: 12 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// The Dev Container format allows you to configure your environment. At the heart of it
// is a Docker image or Dockerfile which controls the tools available in your environment.
//
// See https://aka.ms/devcontainer.json for more information.
{
"name": "Bash Language Server",
// Node 22 base image (matches .tool-versions) extended with shellcheck, shfmt and pnpm.
"build": {
"context": ".",
"dockerfile": "Dockerfile"
}
}
36 changes: 36 additions & 0 deletions .ona/automations.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
tasks:
install:
name: Install dependencies
description: Install workspace dependencies with pnpm (also installs the vscode-client deps via postinstall).
command: |
pnpm install --frozen-lockfile
triggeredBy:
- postDevcontainerStart

compile:
name: Compile
description: Build the TypeScript projects.
command: |
pnpm compile
triggeredBy:
- manual
dependsOn:
- install

test:
name: Test
description: Run the Jest test suite (requires shellcheck and shfmt, provided by the dev container).
command: |
pnpm test
triggeredBy:
- manual
dependsOn:
- install

services:
watch:
name: Watch
description: Rebuild the TypeScript projects on change.
commands:
start: |
pnpm watch
Loading