Giter Site home page Giter Site logo

build-publish-plugin's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

build-publish-plugin's Issues

Last tag is found incorrectly which leads to incorrect changelog and versionCode in apk

I have these tags:

v1.0.1-internal
v1.0.2-internal
...
v1.0.8-internal
v1.0.9-internal
v1.0.10-internal

And the build for v1.0.10-internal tag results in the changelog between v1.0.8-internal and v1.0.9-internal tags, and version code of the resulting apk is 9 which is incorrect too.

This happens because tags are not sorted by the build number and are used as is from git:

fun findBuildTags(buildVariants: Set<String>, limitResultCount: Int): List<Tag>? {
return grgitService.grgit.tag.list()
.filter { tag ->
buildVariants.any { variant ->
tag.name.endsWith("-$variant")
}
}
.map { tag ->
Tag.Generic(
name = tag.name,
commitSha = tag.commit.id,
message = tag.fullMessage,
)
}
.reversed()
.take(limitResultCount)
.ifEmpty { null }
}

and git produces them like this:

v1.0.1-internal
v1.0.10-internal
v1.0.2-internal
...
v1.0.7-internal
v1.0.8-internal
v1.0.9-internal

Solution:

Insert a code to sort tags by build number which can be obtained by using this regex: ".+\.(\d+)-${variant}"

Add ShellExecutor for Windows or replace shell with grgit

⚠️ Is your feature request related to a problem? Please describe

Now we can collect changelog correctly only in Linux or MacOS, because we use shell to collect git diff between tags and search last tag.

We should add ShellExecutor analog for Windows or replace shell with grgit plugin to support all OS.

Add friendly error/warning reporting

Some tasks can be successful executed, but they haven't any necessary valid outputs. For example, one of the basis task, which must generate tag-build-<build_name>.json. It doesn't just do it sometimes (f.e., in case of invalid tag names or empty changelog) and doesn't print any warning and reason.

FIx bug with errors from JIra automation

⚠️ Is your feature request related to a problem? Please describe

Now we get strange errors from Jira if status isn't correct and in this cases errors can stop ci/cd process.
We can change logic to handle errors and, for example, ignore it or translate as not fatal errors.

Change logic to send apk to AppCenter

Now we use specific parameters to set timeout and requests count, but it's not so well, because apk can be increased time to time and we should update this parameters in code.

To fix this issue we can calculate timeout and requests count depending on apk size, and make parameters optionals to use it if auto calculation won't work.

Set custom AppCenter names

⚠️ Is your feature request related to a problem? Please describe

Now to upload app to AppCenter, we should create apps which correspond to pattern <appNamePrefix>-<variantName>. For example TestProject-debug, TestProject-release.

It can be useful to add possibility to set custom names for each variant. For example, instead of appNamePrefix we can add appName property. But if appName isn't set we can use <baseFileName>-<variantName>, for example example-base-project-android-debug, example-base-project-android-internal.

Fix logic to attach hypertexts for Telegram

⚠️ Is your feature request related to a problem? Please describe

In previous version of Telegram we had text like this

[TASK-111] Changelog

Now we have text like this
[[TASK-111] (https://jira.com)] Changelog

Previous version is more correct

Replace shell commands with Okhttp and Retrofit

💡 Describe the solution you'd like

Now plugin uses shell commands to push changelogs, but it's solution tided to linux, but we want to use this plugin correctly on all operation systems. And port this logic to OkHttp and Retrofit can be good solution.

🤚 Do you want to develop this feature yourself?

  • Yes
  • No

The tag is not put into the Jira task if the changelog contains more than one pair of square brackets

🐛 Describe the bug

Library version:

ru.kode.android:build-publish:1.1.0-alpha14

Example of a message:

CHANGELOG: [TBIG-1195] [authorization] Add "invalid_user_credentials" processing error

Steps to reproduce:
Add a tag to gitlab to start the build.

Actual result:
A label with the build number is not added to the Jira task with number "TBIG-1195".

Expected result:
A label with the build number is added to the Jira task with number "TBIG-1195".

If the second pair of square quotes is removed, then a label with the build number is added to the Jira task.

CHANGELOG: [TBIG-1195] authorization Add "invalid_user_credentials" processing error

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.