itw-python-builder 0.1.50__tar.gz → 0.1.52__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/PKG-INFO +1 -1
  2. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder/tasks.py +17 -6
  3. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder.egg-info/PKG-INFO +1 -1
  4. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/pyproject.toml +1 -1
  5. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/LICENSE +0 -0
  6. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/README.md +0 -0
  7. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder/.pylintrc +0 -0
  8. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder/__init__.py +0 -0
  9. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder/cli.py +0 -0
  10. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder/notify.py +0 -0
  11. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder/ssr_tasks.py +0 -0
  12. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder/templates/new_version_email.html +0 -0
  13. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder/templates/server.sitemap.snippet.ts +0 -0
  14. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder/templates/sitemap.routes.ts +0 -0
  15. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder/utils.py +0 -0
  16. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder/version.py +0 -0
  17. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder.egg-info/SOURCES.txt +0 -0
  18. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder.egg-info/dependency_links.txt +0 -0
  19. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder.egg-info/entry_points.txt +0 -0
  20. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder.egg-info/requires.txt +0 -0
  21. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/itw_python_builder.egg-info/top_level.txt +0 -0
  22. {itw_python_builder-0.1.50 → itw_python_builder-0.1.52}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: itw_python_builder
3
- Version: 0.1.50
3
+ Version: 0.1.52
4
4
  Summary: Standardized Django deployment pipeline with Docker, testing, and SonarQube integration
5
5
  Author-email: IT-Works <contact@it-works.io>
6
6
  License: MIT
@@ -17,6 +17,7 @@ from itw_python_builder.utils import (
17
17
  _parse_gitlab_remote,
18
18
  install_sigint_guard,
19
19
  step,
20
+ abort_if_interrupted,
20
21
  safe_remove,
21
22
  ensure_gitignored,
22
23
  gitignore_touched_this_run,
@@ -253,7 +254,17 @@ def tag_build_push(ctx: Context, version: Version, skip_pipeline: bool = False,
253
254
  branch = get_current_branch(ctx)
254
255
  if ensure_gitignored('dist.tar.gz'):
255
256
  print('[itw] Added "dist.tar.gz" to .gitignore.')
256
- step('build', build_frontend, ctx, branch, ssr=ssr)
257
+ pkg_path = Path(os.getcwd()) / 'package.json'
258
+ original_pkg = pkg_path.read_text(encoding='utf-8')
259
+ save_version(version)
260
+ print(f'[itw] Bumped package.json to {version.bare_semver()} before build.')
261
+ try:
262
+ build_frontend(ctx, branch, ssr=ssr)
263
+ except BaseException:
264
+ pkg_path.write_text(original_pkg, encoding='utf-8')
265
+ print('[itw] Build failed — reverted package.json to previous version.')
266
+ raise
267
+ abort_if_interrupted('build')
257
268
  step('package', package_dist, ctx)
258
269
  step('upload', upload_dist, ctx, version)
259
270
  if safe_remove('dist.tar.gz'):
@@ -367,14 +378,14 @@ def release(ctx: Context, skip_pipeline=False, ssr=False) -> None:
367
378
 
368
379
 
369
380
  @task
370
- def test(ctx: Context, settings='backend.test_settings'):
371
- """Run tests with coverage (Django or Angular/karma)"""
381
+ def test(ctx: Context, settings='backend.test_settings', warn=False):
382
+ """Run tests with coverage. --warn lets the pipeline continue and print coverage on failure."""
372
383
  if detect_project_type() == 'frontend':
373
- ctx.run('npx ng test --no-watch --code-coverage --browsers=ChromeHeadlessNoSandbox')
384
+ ctx.run('npx ng test --no-watch --code-coverage --browsers=ChromeHeadlessNoSandbox', warn=warn)
374
385
  print("✓ Tests completed")
375
386
  return
376
387
  detect_and_activate_venv()
377
- ctx.run(f'python -m coverage run manage.py test --settings={settings} --noinput -v 2')
388
+ ctx.run(f'python -m coverage run manage.py test --settings={settings} --noinput -v 2', warn=warn)
378
389
  ctx.run('python -m coverage report -m')
379
390
  ctx.run('python -m coverage xml -o coverage.xml')
380
391
  print("✓ Tests completed")
@@ -468,7 +479,7 @@ def pipelinelocal(ctx: Context, settings='backend.test_settings', pylintrc=None)
468
479
  print("\n" + "=" * 60)
469
480
  print(f"Step {'2' if project_type == 'backend' else '1'}: Running tests...")
470
481
  print("=" * 60)
471
- step('tests', test, ctx, settings)
482
+ step('tests', test, ctx, settings, warn=True)
472
483
 
473
484
  print("\n" + "=" * 60)
474
485
  print(f"Step {'3' if project_type == 'backend' else '2'}: Running SonarQube analysis...")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: itw_python_builder
3
- Version: 0.1.50
3
+ Version: 0.1.52
4
4
  Summary: Standardized Django deployment pipeline with Docker, testing, and SonarQube integration
5
5
  Author-email: IT-Works <contact@it-works.io>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "itw_python_builder"
7
- version = "0.1.50"
7
+ version = "0.1.52"
8
8
  description = "Standardized Django deployment pipeline with Docker, testing, and SonarQube integration"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"