예제 #1
0
    def test_tagging(self):
        """Test tag options of import-srpm"""
        srpm = os.path.join(DATA_DIR, 'gbp-test-1.0-1.src.rpm')

        # Invalid packaging tag keywords
        eq_(mock_import(['--no-pristine-tar', '--packaging-tag=%(foo)s', srpm]),
            1)
        self._check_log(-1, ".*Missing value 'foo' in *.*")
        # Remove upstream tag
        repo = GitRepository('gbp-test')
        repo.delete_tag('upstream/1.0')

        # Invalid upstream tag keywords
        eq_(mock_import(['--no-pristine-tar', '--upstream-tag=%(foo)s', srpm]),
            1)
        self._check_log(-1, ".*Missing value 'foo' in.*")

        # Try with good keywords, with --skip-packaging-tag
        eq_(mock_import(['--no-pristine-tar', '--vendor=foo',
                         '--skip-packaging-tag',
                         '--packaging-tag=%(vendor)s/%(version)s',
                         '--upstream-tag=upst/%(version)s', srpm]), 0)
        eq_(repo.describe('upstream'), 'upst/1.0')
        eq_(len(repo.get_tags()), 1)

        # Re-import, creating packaging tag
        eq_(mock_import(['--no-pristine-tar', '--vendor=foo',
                         '--packaging-tag=%(vendor)s/%(version)s',
                         '--upstream-tag=upst/%(version)s', srpm]), 0)
        eq_(repo.describe('HEAD'), 'foo/1.0-1')
        eq_(len(repo.get_tags()), 2)
예제 #2
0
def main(argv):
    """Entry point for gbp-submit-bb"""
    retval = 0

    options, _args = parse_args(argv)
    if not options:
        return 1

    try:
        repo = GitRepository(os.path.curdir)
    except GitRepositoryError:
        gbp.log.err("The command must be run under a Git repository")
        return 1

    try:
        remote = guess_remote(repo, options)

        tag_fields = {
            'nowtime': datetime.now().strftime('%Y%m%d.%H%M%S'),
            'target': options.target
        }
        tag_name = format_msg(options.submit_tag, tag_fields)

        gbp.log.info("Tagging %s" % tag_name)
        repo.create_tag(tag_name,
                        msg=options.message,
                        commit=options.commit,
                        sign=options.sign_tags,
                        keyid=options.keyid,
                        annotate=True)

        gbp.log.info("Pushing to remote %s" % remote)
        try:
            repo.push_tag(remote, tag_name)
        except GitRepositoryError as err:
            gbp.log.err(err)
            gbp.log.info("Removing tag %s" % tag_name)
            repo.delete_tag(tag_name)
            raise GbpError("Git push failed!")

    except (GbpError, GitRepositoryError) as err:
        if len(err.__str__()):
            gbp.log.err(err)
        retval = 1

    return retval
예제 #3
0
    def test_tagging(self):
        """Test tag options of import-srpm"""
        srpm = os.path.join(DATA_DIR, 'gbp-test-1.0-1.src.rpm')

        # Invalid packaging tag keywords
        eq_(
            mock_import(['--no-pristine-tar', '--packaging-tag=%(foo)s',
                         srpm]), 1)
        self._check_log(-1, ".*Missing value 'foo' in *.*")
        # Remove upstream tag
        repo = GitRepository('gbp-test')
        repo.delete_tag('upstream/1.0')

        # Invalid upstream tag keywords
        eq_(mock_import(['--no-pristine-tar', '--upstream-tag=%(foo)s', srpm]),
            1)
        self._check_log(-1, ".*Missing value 'foo' in.*")

        # Try with good keywords, with --skip-packaging-tag
        eq_(
            mock_import([
                '--no-pristine-tar', '--vendor=foo', '--skip-packaging-tag',
                '--packaging-tag=%(vendor)s/%(version)s',
                '--upstream-tag=upst/%(version)s', srpm
            ]), 0)
        eq_(repo.describe('upstream'), 'upst/1.0')
        eq_(len(repo.get_tags()), 1)

        # Re-import, creating packaging tag
        eq_(
            mock_import([
                '--no-pristine-tar', '--vendor=foo',
                '--packaging-tag=%(vendor)s/%(version)s',
                '--upstream-tag=upst/%(version)s', srpm
            ]), 0)
        eq_(repo.describe('HEAD'), 'foo/1.0-1')
        eq_(len(repo.get_tags()), 2)