mirror of
https://github.com/hcengineering/platform.git
synced 2026-09-28 04:25:03 +02:00
feat: Support Windows for development
Signed-off-by: Artem Savchenko <armisav@gmail.com>
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// Copyright © 2024 Hardcore Engineering Inc.
|
||||
//
|
||||
// Licensed under the Eclipse Public License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may
|
||||
// obtain a copy of the License at https://www.eclipse.org/legal/epl-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
//
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const { execSync, spawnSync } = require('child_process')
|
||||
|
||||
const image = process.argv[2]
|
||||
if (!image) {
|
||||
console.error('Usage: node docker_build.js <image-name> [.]')
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
const version = execSync('git rev-parse HEAD', { encoding: 'utf8' }).trim()
|
||||
const cleanup = process.env.DOCKER_BUILD_CLEANUP === 'true'
|
||||
const extra = (process.env.DOCKER_EXTRA || '').trim().split(/\s+/).filter(Boolean)
|
||||
|
||||
console.log('Building version:', version)
|
||||
|
||||
const dockerArgs = ['build', '-t', image, '-t', `${image}:${version}`, ...extra, '.']
|
||||
const result = spawnSync('docker', dockerArgs, { stdio: 'inherit', cwd: process.cwd() })
|
||||
if (result.status !== 0) {
|
||||
process.exit(result.status)
|
||||
}
|
||||
|
||||
if (cleanup) {
|
||||
console.log('Cleaning up build artifacts...')
|
||||
const dirs = ['bundle', 'dist', '.rush']
|
||||
for (const dir of dirs) {
|
||||
const fullPath = path.join(process.cwd(), dir)
|
||||
if (fs.existsSync(fullPath)) {
|
||||
console.log(' Removing', dir + '/')
|
||||
fs.rmSync(fullPath, { recursive: true, force: true })
|
||||
}
|
||||
}
|
||||
// Skip du -sh on Windows (no du); optional on Unix
|
||||
try {
|
||||
const size = execSync('du -sh . 2>/dev/null | cut -f1', { encoding: 'utf8' }).trim()
|
||||
if (size) console.log(' Size after cleanup:', size)
|
||||
} catch (_) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user