Initial Commit
This commit is contained in:
29
scripts/ci-build.sh
Normal file
29
scripts/ci-build.sh
Normal file
@@ -0,0 +1,29 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
distDirectory=${DIST_DIRECTORY:-"dist"}
|
||||
|
||||
rm -rf ${distDirectory}
|
||||
|
||||
bun run lint
|
||||
bun run build:node
|
||||
bun run build:browser
|
||||
bun run build:types
|
||||
bun run build:prepare-package-json
|
||||
|
||||
echo "Copying [.npmrc] to [${distDirectory}]"
|
||||
cp .npmrc ./${distDirectory}
|
||||
|
||||
echo "Copying [.nvmrc] to [${distDirectory}]"
|
||||
cp .nvmrc ./${distDirectory}
|
||||
|
||||
echo "Copying [README.md] to [${distDirectory}]"
|
||||
cp README.md ./${distDirectory}
|
||||
|
||||
ls ${distDirectory}
|
||||
|
||||
echo -e "\nci-build complete!"
|
||||
exit 0
|
||||
0
scripts/ci-deploy.h
Normal file
0
scripts/ci-deploy.h
Normal file
81
scripts/ci-deploy.sh
Executable file
81
scripts/ci-deploy.sh
Executable file
@@ -0,0 +1,81 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
registryUrl="https://registry-node.techniker.me"
|
||||
packageVersionToDeploy=""
|
||||
isBeta="true"
|
||||
|
||||
while [[ "${#}" -gt 0 ]]; do
|
||||
case "${1}" in
|
||||
--beta)
|
||||
isBeta="${2}"
|
||||
shift 2
|
||||
;;
|
||||
--version)
|
||||
packageVersionToDeploy="${2}"
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
echo "Unknown option [${1}]"
|
||||
exit "${LINENO}"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
function cleanDirectory {
|
||||
local directory="${1}"
|
||||
|
||||
if [ -d "${directory}" ]; then
|
||||
echo "Deleting [${directory}]..."
|
||||
|
||||
rm -rf "${directory}"
|
||||
fi
|
||||
}
|
||||
|
||||
function removePackageJsonMember {
|
||||
local packageJsonPath="dist/package.json"
|
||||
local memberToRemove="${1}"
|
||||
|
||||
if [ -f "${packageJsonPath}" ]; then
|
||||
echo "Removing [${memberToRemove}] from the dist/package.json"
|
||||
|
||||
jq "del(.${memberToRemove})" "${packageJsonPath}" > tmp.$$.json && mv tmp.$$.json "$packageJsonPath"
|
||||
else
|
||||
echo "Error: [${packageJsonPath}] not found."
|
||||
fi
|
||||
}
|
||||
|
||||
function updatePackageJsonVersion {
|
||||
local versionToUpdate="${1}"
|
||||
|
||||
if [ isBeta == "true" ]; then
|
||||
echo "Version to update [${versionToUpdate}] Contains beta"
|
||||
echo "Updating package.json version to [${versionToUpdate}]"
|
||||
|
||||
local packageJsonVersion=$(jq -r '.version' package.json)
|
||||
|
||||
sed -i "s/\"version\": \"${packageJsonVersion}\"/\"version\": \"${versionToUpdate}\"/" dist/package.json
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
echo "Deploying [${packageVersionToDeploy}]";
|
||||
echo "isBeta [${isBeta}]"
|
||||
|
||||
cleanDirectory "dist"
|
||||
|
||||
npm run ci-build
|
||||
|
||||
removePackageJsonMember "devDependencies"
|
||||
removePackageJsonMember "scripts"
|
||||
|
||||
|
||||
if [ "${isBeta}" == "true" ]; then
|
||||
updatePackageJsonVersion "${packageVersionToDeploy}"
|
||||
npm publish --registry "${registryUrl}" --tag beta
|
||||
else
|
||||
npm publish --registry "${registryUrl}"
|
||||
fi
|
||||
16
scripts/prepare-package-json.sh
Normal file
16
scripts/prepare-package-json.sh
Normal file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
distDirectory=${DIST_DIRECTORY:-"dist"}
|
||||
packageJsonPath=${PACKAGE_JSON_PATH:-"package.json"}
|
||||
|
||||
if [ ! -d "${distDirectory}" ]; then
|
||||
echo "Unable to prepare package.json, [${distDirectory}] not found"
|
||||
exit $LINENO
|
||||
fi
|
||||
|
||||
echo "Preparing [package.json] to [${distDirectory}]"
|
||||
jq '{name, version, author, type, types, exports, files, publishConfig}' "${packageJsonPath}" > "${distDirectory}/package.json"
|
||||
37
scripts/version-bump.sh
Executable file
37
scripts/version-bump.sh
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check if a parameter was provided
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: ./version-bump.sh [major|minor|patch]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Read current version
|
||||
current_version=$(node -p "require('./package.json').version")
|
||||
IFS='.' read -r major minor patch <<< "$current_version"
|
||||
|
||||
# Update version based on parameter
|
||||
case "$1" in
|
||||
"major")
|
||||
new_version="$((major + 1)).0.0"
|
||||
;;
|
||||
"minor")
|
||||
new_version="$major.$((minor + 1)).0"
|
||||
;;
|
||||
"patch")
|
||||
new_version="$major.$minor.$((patch + 1))"
|
||||
;;
|
||||
*)
|
||||
echo "Invalid parameter. Use: major, minor, or patch"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# Update package.json
|
||||
node -e "
|
||||
const pkg = require('./package.json');
|
||||
pkg.version = '$new_version';
|
||||
require('fs').writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
|
||||
"
|
||||
|
||||
echo "Version bumped from $current_version to $new_version"
|
||||
Reference in New Issue
Block a user