feat: WIP

This commit is contained in:
Nikita Kiselev
2025-07-10 18:31:02 +03:00
parent c3664025ba
commit 846fa64fb4
68 changed files with 4144 additions and 118 deletions

View File

@@ -1,46 +0,0 @@
#!/bin/bash
set -e
VERSION="1.0.0"
MODULE_NAME="oc_telegram_shop"
CURRENT_DIR="$(dirname "$0")"
echo "Current dir: ${CURRENT_DIR}"
node -v
npm -v
RED='\033[0;31m'
GREEN='\033[0;32m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
echo -e "${BLUE}🔨 Starting build process...${NC}"
echo -e "${BLUE}Build frontend...${NC}"
rm -rf /app/module/oc_telegram_shop/upload/admin/view/javascript
rm -rf /app/module/oc_telegram_shop/upload/admin/view/integration.js
cd /app/frontend
npm install
NODE_ENV=production npm run build
rm -rf /app/module/oc_telegram_shop/upload/admin/view/javascript/oc_telegram_shop/.vite
rm -rf /app/module/oc_telegram_shop/upload/admin/view/javascript/oc_telegram_shop/oc_telegram_shop.js.map
rm -rf /app/module/oc_telegram_shop/upload/admin/view/javascript/oc_telegram_shop/favicon.ico
echo -e "${BLUE}📦 Packaging into .ocmod.zip...${NC}"
cd /app/module/oc_telegram_shop
zip -rqq "${MODULE_NAME}.ocmod.zip" .
mv "${MODULE_NAME}.ocmod.zip" /build
FINAL_FILE="/build/${MODULE_NAME}.ocmod.zip"
if [ -f "$FINAL_FILE" ]; then
FILE_SIZE=$(du -h "$FINAL_FILE" | cut -f1)
echo -e "${GREEN}✅ Build completed successfully!${NC}"
echo -e "${GREEN}🎉 Created: $FINAL_FILE ($FILE_SIZE)${NC}"
else
echo "❌ Error: Final build file not found: $FINAL_FILE"
exit 1
fi
echo -e "${BLUE}🎯 Build artifact ready for installation!${NC}"

78
scripts/ci/build.sh Executable file
View File

@@ -0,0 +1,78 @@
#!/bin/bash
set -e
MODULE_NAME="oc_telegram_shop"
CURRENT_DIR="$(dirname "$0")"
echo "Current dir: ${CURRENT_DIR}"
composer --version
node -v
npm -v
SRC_PATH="$1"
BUILD_PATH="${CURRENT_DIR}/build"
echo "🔨 Starting build process..."
echo " Source path: ${SRC_PATH}"
echo " Build path: ${BUILD_PATH}"
if [ -z "$BUILD_PATH" ]; then
echo "❌ Error: BUILD_PATH is required"
exit 1
fi
if [ -z "$SRC_PATH" ]; then
echo "❌ Error: SRC_PATH is required"
exit 1
fi
echo "Build SPA..."
cd "${SRC_PATH}/spa"
npm install
npm run build
cd - > /dev/null
echo "Install Composer dependencies."
cd "${SRC_PATH}/module/oc_telegram_shop/upload/oc_telegram_shop"
composer install \
--prefer-dist \
--no-dev \
--optimize-autoloader \
--no-interaction \
--no-cache
cd - > /dev/null
echo "📜 Creating Phar archive..."
rm -rf \
"${SRC_PATH}/module/oc_telegram_shop/upload/oc_telegram_shop/tests" \
"${SRC_PATH}/module/oc_telegram_shop/upload/oc_telegram_shop/phpunit.xml" \
"${SRC_PATH}/module/oc_telegram_shop/upload/oc_telegram_shop/psalm.xml" \
"${SRC_PATH}/module/oc_telegram_shop/upload/oc_telegram_shop/psalm-classes.php" \
"${SRC_PATH}/module/oc_telegram_shop/upload/oc_telegram_shop/psalm-stubs.php"
php -d phar.readonly=0 scripts/ci/create-phar.php "${SRC_PATH}/module/oc_telegram_shop/upload/oc_telegram_shop" "${MODULE_NAME}.phar"
echo "📦 Packaging into .ocmod.zip..."
mkdir -p "${SRC_PATH}/module/oc_telegram_shop/upload/system/library/oc_telegram_shop"
mv "${MODULE_NAME}.phar" "${SRC_PATH}/module/oc_telegram_shop/upload/system/library/oc_telegram_shop"
rm -rf \
"${SRC_PATH}/module/oc_telegram_shop/upload/oc_telegram_shop"
cd "${SRC_PATH}/module/oc_telegram_shop/"
zip -rqq "${MODULE_NAME}.ocmod.zip" .
mv "${MODULE_NAME}.ocmod.zip" "${BUILD_PATH}"
FINAL_FILE="${BUILD_PATH}/${MODULE_NAME}.ocmod.zip"
if [ -f "$FINAL_FILE" ]; then
FILE_SIZE=$(du -h "$FINAL_FILE" | cut -f1)
echo -e "✅ Build completed successfully!"
echo -e "🎉 Created: $FINAL_FILE ($FILE_SIZE)"
else
echo "❌ Error: Final build file not found: $FINAL_FILE"
exit 1
fi
echo -e "🎯 Build artifact ready for installation!"

View File

@@ -0,0 +1,37 @@
<?php
$sourcePath = $argv[1] ?? null;
$pharFile = $argv[2] ?? null;
if (! $sourcePath) {
throw new InvalidArgumentException('Source path must be provided');
}
if (! $pharFile) {
throw new InvalidArgumentException('Phar file must be provided');
}
// Remove old file if exists
if (file_exists($pharFile)) {
unlink($pharFile);
}
// Create new Phar archive
$phar = new Phar($pharFile);
// Start buffering
$phar->startBuffering();
// Add files from source directory
$phar->buildFromDirectory($sourcePath);
// (Optional) Set stub file — main entry point
// $phar->setStub($phar->createDefaultStub('index.php'));
$phar->compressFiles(Phar::GZ);
// Stop buffering and write
$phar->stopBuffering();
echo "Phar created: $pharFile\n";

View File

@@ -1,6 +1,6 @@
<?php
$module = 'oc_layout_pro';
$module = 'oc_telegram_shop';
$basePath = dirname(__DIR__) . '/';