Как сделать чтоб при пуше менялась переменная

183
17 ноября 2017, 06:03

Такой вот вопос, у нас несколько человек работет над проектом, и в классе глобальных переменных есть такая boolean isDebugMode

Так вот вопрос в том, что при работе с кодом эта переменная true , но когда в основную бранч делаем пуш то она там должна быть false , но часто возникает ситуация когда просто кто то забывает ее перед пушем поставить в false

Можно ли написать какой то скрипт который при пуше будет автоматически менять эту переменную на false ?

Или может можно как то именно эту переменную исключитить из отслеживания гитом? Чтоб она на удаленом репозитории всегда хранилась в значении false

Константа BuildConfig.DEBUG не подходит, потому что есть тесты которые мы проводим на дебаг версии

Answer 1
  1. Хранить в файле конфигов. При старте считывать это значение в переменную.
  2. Залить в гит.
  3. Добавить в гит игнор.
Answer 2

Вынесите свою переменную в buildTypes:

buildTypes {
        debug {
            minifyEnabled false
            applicationIdSuffix ".debug"
            versionNameSuffix "-debug"
            buildConfigField "boolean", "IS_DEBUG_MODE", "true"
        }
        debugWithFalseDebugMode {
            initWith debug
            buildConfigField "boolean", "IS_DEBUG_MODE", "false"
        }
        release {
            signingConfig signingConfigs.release
            shrinkResources true
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            buildConfigField "boolean", "IS_DEBUG_MODE", "false"
        }
    }

Затем, в файле глобальных констант, берите ее значение:

public class Config {
    public static final Boolean IS_DEBUG_MODE = BuildConfig.IS_DEBUG_MODE ;
    ...
}

Теперь используйте соответствующий buildType, когда это нужно.

Как вариант, можно динамически менять эту переменную в gradle:

buildTypes {
    debug {
        minifyEnabled false
        buildConfigField "boolean", "IS_DEBUG_MODE", isDebugMode()
    }
    release {
        minifyEnabled true
        buildConfigField "boolean", "IS_DEBUG_MODE", isDebugMode()
    }
}
def isDebugMode() {
    def value = project.getProperties().get("IS_DEBUG_MODE")
    return value != null ? value : "true"
}

Используете так:

./gradlew iDebug -PisDebugMode=true
READ ALSO
Как записать объекты java из List в json в цикле?

Как записать объекты java из List в json в цикле?

В файле filejson сохраняется только один объект, последний

202
Запись видео и обработка

Запись видео и обработка

Мне нужно записать видео и отредактировать(добавить текст на видео или фильтры какие нибудь) как в Instagram

220
Как инициализировать другие окна в java?

Как инициализировать другие окна в java?

Что я имею ввиду?Например: я знаю что какое-то окно, назовем его x будет открыто к моменту запуска программы, и в этом окне допустим запрашивается...

172
Как кастомизировать форму float button android

Как кастомизировать форму float button android

Как кастомизировать форму float button android?

166