Remove technical documentation and testing files; add ESLint configuration and CI scripts for build and deployment processes.
This commit is contained in:
33
scripts/ci-build.sh
Executable file
33
scripts/ci-build.sh
Executable file
@@ -0,0 +1,33 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
distDirectory=${DIST_DIRECTORY:-"dist"}
|
||||
|
||||
if [[ ! -z "${distDirectory}" ]]; then
|
||||
echo "Removing dist directory [${distDirectory}]"
|
||||
|
||||
rm -rf ${distDirectory}
|
||||
fi
|
||||
|
||||
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 ./${distDirectory}
|
||||
|
||||
ls ${distDirectory}
|
||||
|
||||
echo -e "\nci-build complete!"
|
||||
exit 0
|
||||
83
scripts/ci-deploy.sh
Executable file
83
scripts/ci-deploy.sh
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
|
||||
registryUrl="http://localhost:4873"
|
||||
# registryUrl="https://registry-node.techniker.me"
|
||||
packageVersionToDeploy=""
|
||||
isBeta="false"
|
||||
|
||||
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"
|
||||
|
||||
bun run ci-build
|
||||
|
||||
removePackageJsonMember "devDependencies"
|
||||
removePackageJsonMember "scripts"
|
||||
|
||||
echo "publishing to ${registryUrl}"
|
||||
if [ "${isBeta}" == "true" ]; then
|
||||
updatePackageJsonVersion "${packageVersionToDeploy}"
|
||||
npm publish --registry "${registryUrl}" --tag beta
|
||||
else
|
||||
npm publish --registry "${registryUrl}"
|
||||
fi
|
||||
|
||||
16
scripts/prepare-package-json.sh
Executable file
16
scripts/prepare-package-json.sh
Executable 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"
|
||||
Reference in New Issue
Block a user