41 lines
970 B
Bash
Executable File
41 lines
970 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
BUILD_DIR="$ROOT_DIR/build"
|
|
SHARED_DIR="$ROOT_DIR/shared"
|
|
SHARED_TGZ_PATH="$BUILD_DIR/ado-sk-toolkit-shared.tgz"
|
|
|
|
mkdir -p "$BUILD_DIR"
|
|
|
|
cd "$SHARED_DIR"
|
|
rm -rf dist node_modules
|
|
if [[ -f package-lock.json ]]; then
|
|
npm ci
|
|
else
|
|
npm install --no-audit --fund=false
|
|
fi
|
|
npm run build
|
|
|
|
PACKED_SHARED_TGZ="$(npm pack --pack-destination "$BUILD_DIR")"
|
|
cp -f "$BUILD_DIR/$PACKED_SHARED_TGZ" "$SHARED_TGZ_PATH"
|
|
|
|
for TASK_DIR in "$ROOT_DIR"/task/*; do
|
|
if [[ -f "$TASK_DIR/package.json" && -f "$TASK_DIR/tsconfig.json" ]]; then
|
|
cd "$TASK_DIR"
|
|
rm -rf dist node_modules
|
|
if [[ -f package-lock.json ]]; then
|
|
npm ci
|
|
else
|
|
npm install --no-audit --fund=false
|
|
fi
|
|
npm install --no-save "$SHARED_TGZ_PATH"
|
|
npm run build
|
|
fi
|
|
done
|
|
|
|
cd "$ROOT_DIR"
|
|
npx tfx-cli extension create \
|
|
--manifest-globs vss-extension.json \
|
|
--output-path "$BUILD_DIR"
|