├── .idea ├── .name ├── codeStyles │ ├── codeStyleConfig.xml │ └── Project.xml ├── vcs.xml ├── misc.xml ├── runConfigurations.xml └── gradle.xml ├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── values │ │ │ │ ├── dimens.xml │ │ │ │ ├── colors.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── menu │ │ │ │ └── menu_main.xml │ │ │ ├── layout │ │ │ │ └── activity_main.xml │ │ │ ├── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ │ └── drawable │ │ │ │ └── ic_launcher_background.xml │ │ ├── AndroidManifest.xml │ │ └── java │ │ │ └── com │ │ │ └── seank │ │ │ └── azuredevopstest │ │ │ └── MainActivity.kt │ ├── productA │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ ├── productB │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ ├── productC │ │ └── res │ │ │ └── values │ │ │ └── strings.xml │ ├── blue │ │ └── res │ │ │ └── values │ │ │ └── colors.xml │ ├── red │ │ └── res │ │ │ └── values │ │ │ └── colors.xml │ ├── green │ │ └── res │ │ │ └── values │ │ │ └── colors.xml │ ├── test │ │ └── java │ │ │ └── com │ │ │ └── seank │ │ │ └── azuredevopstest │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── com │ │ └── seank │ │ └── azuredevopstest │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle ├── settings.gradle ├── readme_imgs ├── red_c_prod.png ├── green_a_staging.png ├── pipeline_variables.png ├── all_variable_groups.png └── secret_variable_group.png ├── azure_devops ├── install_emulator.yml ├── azure_vars │ ├── B_vars.yml │ ├── A_vars.yml │ └── C_vars.yml ├── build-template.yml ├── publish_apks.yml └── azure-pipelines.yml ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .gitignore ├── install_emulator.sh ├── gradle.properties ├── gradlew.bat ├── gradlew └── README.md /.idea/.name: -------------------------------------------------------------------------------- 1 | Azure DevopsTest -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | rootProject.name='Azure DevopsTest' 3 | -------------------------------------------------------------------------------- /app/src/productA/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Product A 3 | -------------------------------------------------------------------------------- /app/src/productB/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Product B 3 | -------------------------------------------------------------------------------- /app/src/productC/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Product C 3 | -------------------------------------------------------------------------------- /readme_imgs/red_c_prod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/readme_imgs/red_c_prod.png -------------------------------------------------------------------------------- /readme_imgs/green_a_staging.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/readme_imgs/green_a_staging.png -------------------------------------------------------------------------------- /azure_devops/install_emulator.yml: -------------------------------------------------------------------------------- 1 | steps: 2 | - task: Bash@3 3 | inputs: 4 | targetType: 'filePath' 5 | filePath: install_emulator.sh -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /readme_imgs/pipeline_variables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/readme_imgs/pipeline_variables.png -------------------------------------------------------------------------------- /app/src/blue/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #0000ff 4 | 5 | -------------------------------------------------------------------------------- /app/src/red/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #ff0000 4 | 5 | -------------------------------------------------------------------------------- /readme_imgs/all_variable_groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/readme_imgs/all_variable_groups.png -------------------------------------------------------------------------------- /readme_imgs/secret_variable_group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/readme_imgs/secret_variable_group.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | .idea 6 | .DS_Store 7 | /build 8 | /captures 9 | .externalNativeBuild 10 | .cxx 11 | -------------------------------------------------------------------------------- /app/src/green/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #00ff00 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /azure_devops/azure_vars/B_vars.yml: -------------------------------------------------------------------------------- 1 | variables: 2 | apk_suffix: 'B' 3 | active_colors: 'blue,red' 4 | active_environments: 'production' 5 | active_products: 'productB' -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /azure_devops/azure_vars/A_vars.yml: -------------------------------------------------------------------------------- 1 | variables: 2 | apk_suffix: 'A' 3 | active_colors: 'red,green' 4 | active_environments: 'staging' 5 | active_products: 'productA' 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/seanKenkeremath/AndroidAzureDevOpsFlavorsExample/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /azure_devops/azure_vars/C_vars.yml: -------------------------------------------------------------------------------- 1 | variables: 2 | apk_suffix: 'C' 3 | active_colors: 'blue,red,green' 4 | active_environments: 'staging,production' 5 | active_products: 'productC' 6 | -------------------------------------------------------------------------------- /.idea/codeStyles/codeStyleConfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | -------------------------------------------------------------------------------- /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Feb 07 14:15:52 EST 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip 7 | -------------------------------------------------------------------------------- /app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | #000 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Settings 3 | App Secret: %s 4 | Build #: %d 5 | Version: %s 6 | Hello World 7 | 8 | -------------------------------------------------------------------------------- /.idea/misc.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 9 | -------------------------------------------------------------------------------- /app/src/test/java/com/seank/azuredevopstest/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package com.seank.azuredevopstest 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_main.xml: -------------------------------------------------------------------------------- 1 | 5 | 10 | 11 | -------------------------------------------------------------------------------- /.idea/runConfigurations.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 11 | 12 | -------------------------------------------------------------------------------- /azure_devops/build-template.yml: -------------------------------------------------------------------------------- 1 | parameters: 2 | - name: gradle_task 3 | type: string 4 | default: "check assemble" 5 | - name: unit_tests 6 | type: boolean 7 | default: false 8 | 9 | steps: 10 | - task: Gradle@2 11 | inputs: 12 | workingDirectory: '' 13 | gradleWrapperFile: 'gradlew' 14 | gradleOptions: '-Xmx3072m' 15 | publishJUnitResults: ${{ parameters.unit_tests }} 16 | testResultsFiles: '**/TEST-*.xml' 17 | tasks: '${{ parameters.gradle_task }} -PactiveColors=$(active_colors) -PactiveEnvironments=$(active_environments) -PactiveProducts=$(active_products) -Papp_secret=$(app_secret) -PversionCode=$(Build.BuildNumber)' -------------------------------------------------------------------------------- /.idea/gradle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 19 | -------------------------------------------------------------------------------- /install_emulator.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Install AVD files 4 | echo "y" | $ANDROID_HOME/tools/bin/sdkmanager --install 'system-images;android-27;google_apis;x86' 5 | 6 | # Create emulator 7 | echo "no" | $ANDROID_HOME/tools/bin/avdmanager create avd -n xamarin_android_emulator -k 'system-images;android-27;google_apis;x86' --force 8 | 9 | $ANDROID_HOME/emulator/emulator -list-avds 10 | 11 | echo "Starting emulator" 12 | 13 | # Start emulator in background 14 | nohup $ANDROID_HOME/emulator/emulator -avd xamarin_android_emulator -no-snapshot > /dev/null 2>&1 & 15 | $ANDROID_HOME/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d '\r') ]]; do sleep 1; done; input keyevent 82' 16 | 17 | $ANDROID_HOME/platform-tools/adb devices 18 | 19 | echo "Emulator started" -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 15 | 16 |