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

Commits:

2 changed files:

Changes:

  • .ci/make_release.py
    1
    +#!/usr/bin/env python
    
    2
    +
    
    3
    +from __future__ import annotations
    
    4
    +
    
    5
    +import argparse
    
    6
    +import logging
    
    7
    +
    
    8
    +from gitlab import Gitlab
    
    9
    +from gitlab.v4.objects import Project
    
    10
    +
    
    11
    +
    
    12
    +logging.basicConfig(level='INFO', format='%(levelname)s: %(message)s')
    
    13
    +log = logging.getLogger()
    
    14
    +
    
    15
    +
    
    16
    +GITLAB_INSTANCE_URL = 'https://dev.gajim.org'
    
    17
    +PROJECT_ID = 31
    
    18
    +
    
    19
    +
    
    20
    +def adjust_milestones(project: Project, version: str) -> None:
    
    21
    +    log.info('Rename Milestone: Next Release -> %s', version)
    
    22
    +    milestones = project.milestones.list(title='Next Release', get_all=True)
    
    23
    +    assert isinstance(milestones, list)
    
    24
    +    milestone = milestones[0]
    
    25
    +    milestone.title = version
    
    26
    +    milestone.save()
    
    27
    +
    
    28
    +    log.info('Create Milestone: Next Release')
    
    29
    +    project.milestones.create({'title': 'Next Release'})
    
    30
    +
    
    31
    +
    
    32
    +def create_release(project: Project, version: str) -> None:
    
    33
    +    log.info('Create Release: %s', version)
    
    34
    +    project.releases.create({
    
    35
    +        'name': version,
    
    36
    +        'tag_name': version,
    
    37
    +        'milestones': [version],
    
    38
    +    })
    
    39
    +
    
    40
    +
    
    41
    +if __name__ == '__main__':
    
    42
    +    parser = argparse.ArgumentParser(description='Make Gitlab Release')
    
    43
    +    parser.add_argument('version', type=str, help='The new version string')
    
    44
    +    parser.add_argument('token', type=str, help='The API token')
    
    45
    +    args = parser.parse_args()
    
    46
    +
    
    47
    +
    
    48
    +    api = Gitlab(GITLAB_INSTANCE_URL, private_token=args.token)
    
    49
    +    api.auth()
    
    50
    +    project = api.projects.get(PROJECT_ID)
    
    51
    +
    
    52
    +    adjust_milestones(project, args.version)
    
    53
    +    create_release(project, args.version)

  • .gitlab-ci.yml
    ... ... @@ -160,3 +160,4 @@ publish-release:
    160 160
         - git add -u
    
    161 161
         - git commit -m "Release Gajim $CI_COMMIT_TAG"
    
    162 162
         - git push
    
    163
    +    - .ci/make_release.py $CI_COMMIT_TAG "${PROJECT_TOKEN}"