Philipp Hörist pushed to branch master at gajim / gajim


Commits:
ce5c3f48 by lovetox at 2022-05-22T21:58:34+02:00
ci: Add debian build script

- - - - -
86d8ea51 by lovetox at 2022-05-22T21:58:34+02:00
ci: Update debian files

- Make changelog generic
- Change package name

- - - - -


3 changed files:

- + .ci/debian_build.py
- debian/changelog
- debian/control


Changes:

=====================================
.ci/debian_build.py
=====================================
@@ -0,0 +1,99 @@
+#!/usr/bin/env python3
+
+from __future__ import annotations
+
+import argparse
+import dataclasses
+import logging
+import shutil
+import subprocess
+from datetime import datetime
+from datetime import timezone
+from pathlib import Path
+
+LOG_FORMAT = '%(asctime)s %(levelname)s %(message)s'
+logging.basicConfig(format=LOG_FORMAT, level=logging.DEBUG)
+log = logging.getLogger()
+
+ROOT_DIR = Path(__file__).resolve().parent.parent
+BUILD_DIR = ROOT_DIR / 'debian_build'
+
+DATE = datetime.now().strftime('%Y%m%d')
+DATE_TIME = datetime.now(tz=timezone.utc).strftime('%a, %d %b %Y %T %z')
+
+
[email protected]
+class ReleaseContext:
+    app: str
+    pkg_name: str
+    release_name: str
+    release_dir: Path
+    tarball: Path
+
+    @classmethod
+    def from_tarball(cls, path: str) -> ReleaseContext:
+        tarball = Path(path)
+        app = tarball.name.split('-', maxsplit=1)[0]
+        pkg_name = f'{app}-nightly'
+        release_name = f'{pkg_name}_{DATE}'
+        release_dir = BUILD_DIR / release_name
+        return cls(app=app,
+                   pkg_name=pkg_name,
+                   release_name=release_name,
+                   release_dir=release_dir,
+                   tarball=tarball)
+
+
+def clean_build_dir() -> None:
+    log.info('Cleanup build directory')
+    if BUILD_DIR.exists():
+        shutil.rmtree(BUILD_DIR)
+    BUILD_DIR.mkdir()
+
+
+def prepare_package_dir(context: ReleaseContext) -> None:
+    log.info('Extract tarball')
+    tarball = Path(shutil.copy(context.tarball, BUILD_DIR))
+    tarball = tarball.rename(BUILD_DIR / f'{context.release_name}.orig.tar.gz')
+    shutil.unpack_archive(tarball, BUILD_DIR)
+
+    log.info('Rename dir to: %s', context.release_name)
+    folder = list(BUILD_DIR.glob(f'{context.app}-?.?.?'))[0]
+    folder = folder.rename(context.release_dir)
+
+    log.info('Copy debian folder into release directory')
+    shutil.copytree(ROOT_DIR / 'debian', context.release_dir / 'debian')
+
+
+def prepare_changelog(context: ReleaseContext) -> None:
+    log.info('Prepare Changelog')
+    changelog = context.release_dir / 'debian' / 'changelog'
+    content = changelog.read_text()
+    content = content.replace('{DATE}', DATE)
+    content = content.replace('{DATE_TIME}', DATE_TIME)
+    changelog.write_text(content)
+
+
+def build(context: ReleaseContext) -> None:
+    log.info('Start package build')
+    subprocess.run(
+       [
+        'dpkg-buildpackage',
+        '-rfakeroot',
+        '--no-sign'
+       ],
+       cwd=context.release_dir,
+       check=True)
+
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser(description='Build debian package')
+    parser.add_argument('tarball', help='Path to tarball e.g. app.tar.gz')
+    args = parser.parse_args()
+
+    context = ReleaseContext.from_tarball(args.tarball)
+
+    clean_build_dir()
+    prepare_package_dir(context)
+    prepare_changelog(context)
+    build(context)


=====================================
debian/changelog
=====================================
@@ -1,6 +1,5 @@
-gajim-svn (20060820) unstable; urgency=low
+gajim-nightly ({DATE}) unstable; urgency=low
 
-  * daily snapshot
-
- -- Yann Le Boulanger <[email protected]>  Sun, 20 Aug 2006 01:30:01 +0200
+  * https://dev.gajim.org/gajim/gajim/-/commits/master
 
+ -- Gajim CI <[email protected]>  {DATE_TIME}


=====================================
debian/control
=====================================
@@ -1,4 +1,4 @@
-Source: gajim-default-nightly
+Source: gajim-nightly
 Section: net
 Priority: optional
 Maintainer: Yann Leboulanger <[email protected]>
@@ -12,7 +12,7 @@ Homepage: https://gajim.org
 Vcs-Git: https://dev.gajim.org/gajim/gajim.git
 Vcs-Browser: https://dev.gajim.org/gajim/gajim/tree/master
 
-Package: gajim-default-nightly
+Package: gajim-nightly
 Architecture: all
 Depends:
     python3 (>= 3.9),



View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/c88a131bc02ea7d1fe04d0960c8c28cb594f0b77...86d8ea51283654f093a34e70193955e4028bc3fa

-- 
View it on GitLab: 
https://dev.gajim.org/gajim/gajim/-/compare/c88a131bc02ea7d1fe04d0960c8c28cb594f0b77...86d8ea51283654f093a34e70193955e4028bc3fa
You're receiving this email because of your account on dev.gajim.org.


_______________________________________________
Commits mailing list
[email protected]
https://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to