@@ -58,50 +58,53 @@ workflows:
5858 - *get_google_services_json
5959 - name : " Setup config and TSL files"
6060 script : |
61+ CONFIG_DIR=app/src/main/assets/config
62+ TSL_FILES_DIR=app/src/main/assets/tslFiles
63+
6164 # Create config and TSL folders
62- mkdir -p app/src/main/assets/config
63- mkdir -p app/src/main/assets/tslFiles
65+ mkdir -p $CONFIG_DIR
66+ mkdir -p $TSL_FILES_DIR
6467
6568 # Remove current eu-lotl.xml if it exists
66- rm -f app/src/main/assets/tslFiles /eu-lotl.xml
69+ rm -f $TSL_FILES_DIR /eu-lotl.xml
6770
6871 # Download latest 'eu-lotl.xml' file"
6972 echo "Downloading latest 'eu-lotl.xml' file"
70- wget "https://ec.europa.eu/tools/lotl/eu-lotl.xml" -P app/src/main/assets/tslFiles
73+ wget "https://ec.europa.eu/tools/lotl/eu-lotl.xml" -P $TSL_FILES_DIR
7174
7275 # Get repo.ria values from environmental variables, as CodeMagic doesn't have access to repo.ria domain
7376 if [[ "${{ inputs.defaultCentralConfigurationTslUrl_input }}" == *"repo.ria"* ]]; then
7477 echo "Using repo.ria configuration"
75- echo $REPO_RIA_DEFAULT_PROPERTIES | base64 --decode > app/src/main/assets/config /configuration.properties
76- echo $REPO_RIA_CONFIG | base64 --decode > app/src/main/assets/config /default-config.json
77- echo $REPO_RIA_PUB_KEY | base64 --decode > app/src/main/assets/config /default-config.pub
78- echo $REPO_RIA_RSA | base64 --decode > app/src/main/assets/config /default-config.rsa
79- echo $REPO_RIA_TRUSTED_TEST_MP | base64 --decode > app/src/main/assets/tslFiles /trusted-test-mp.xml
80- echo $REPO_RIA_TL_MP_TEST_EE | base64 --decode > app/src/main/assets/tslFiles /tl-mp-test-EE.xml
78+ echo $REPO_RIA_DEFAULT_PROPERTIES | base64 --decode > $CONFIG_DIR /configuration.properties
79+ echo $REPO_RIA_CONFIG | base64 --decode > $CONFIG_DIR /default-config.json
80+ echo $REPO_RIA_PUB_KEY | base64 --decode > $CONFIG_DIR /default-config.pub
81+ echo $REPO_RIA_RSA | base64 --decode > $CONFIG_DIR /default-config.rsa
82+ echo $REPO_RIA_TRUSTED_TEST_MP | base64 --decode > $TSL_FILES_DIR /trusted-test-mp.xml
83+ echo $REPO_RIA_TL_MP_TEST_EE | base64 --decode > $TSL_FILES_DIR /tl-mp-test-EE.xml
8184 # EE_T.xml is too large to use in environmental variable. Using compressed variant
82- echo $REPO_RIA_EE_TSL | base64 --decode | gunzip > app/src/main/assets/tslFiles /EE_T.xml
85+ echo $REPO_RIA_EE_TSL | base64 --decode | gunzip > $TSL_FILES_DIR /EE_T.xml
8386 else
8487 echo "Not using repo.ria configuration"
8588 fi
8689
87- if [ -f "app/src/main/assets/tslFiles /eu-lotl.xml" ]; then
90+ if [ -f "$TSL_FILES_DIR /eu-lotl.xml" ]; then
8891 echo "Getting TSL (local LOTL)"
8992 # Repo.ria TSL files already in assets folder, doesn't need to download separately anymore
9093 if [[ "${{ inputs.defaultCentralConfigurationTslUrl_input }}" == *"repo.ria"* ]]; then
91- python3 scripts/TSLXMLDownloader.py --tslFile="app/src/main/assets/tslFiles /eu-lotl.xml" --countries="${{ inputs.memberTsl_input }}" --isDevBuild="True"
94+ python3 scripts/TSLXMLDownloader.py --tslFile="$TSL_FILES_DIR /eu-lotl.xml" --countries="${{ inputs.memberTsl_input }}" --isDevBuild="True"
9295 else
93- python3 scripts/TSLXMLDownloader.py --tslFile="app/src/main/assets/tslFiles/ eu-lotl.xml" --tslTestFile="app/src/main/assets/tslFiles /$(basename ${{ inputs.defaultCentralConfigurationTslUrl_input }})" --countries="${{ inputs.memberTsl_input }}" --isDevBuild="True"
96+ python3 scripts/TSLXMLDownloader.py --tslFile="$TSL_FILES_DIR/ eu-lotl.xml" --tslTestFile="$TSL_FILES_DIR /$(basename ${{ inputs.defaultCentralConfigurationTslUrl_input }})" --countries="${{ inputs.memberTsl_input }}" --isDevBuild="True"
9497 fi
9598
9699 echo "Finished downloading TSL"
97100 else
98101 echo "Getting TSL (remote LOTL)"
99- python3 scripts/TSLXMLDownloader.py --tslTestFile="app/src/main/assets/tslFiles /$(basename 'https://ec.europa.eu/tools/lotl/eu-lotl.xml')" --countries="${{ inputs.memberTsl_input }}" --isDevBuild="True"
102+ python3 scripts/TSLXMLDownloader.py --tslTestFile="$TSL_FILES_DIR /$(basename 'https://ec.europa.eu/tools/lotl/eu-lotl.xml')" --countries="${{ inputs.memberTsl_input }}" --isDevBuild="True"
100103 echo "Finished downloading TSL"
101104 fi
102105
103106 echo "Moving TSLs to app's assets"
104- mv -v scripts/TSL/* app/src/main/assets/tslFiles /
107+ mv -v scripts/TSL/* $TSL_FILES_DIR /
105108 echo "Done moving TSLs"
106109 - name : Run tests
107110 script : |
@@ -116,18 +119,19 @@ workflows:
116119 # Add +1 to the highest build number to submit to Google Play
117120 # If any are 0, use build number
118121 if [ "$LATEST_GOOGLE_PLAY_INTERNAL_BUILD_NUMBER" -gt 0 ] && [ "$LATEST_GOOGLE_PLAY_PRODUCTION_BUILD_NUMBER" -gt 0 ]; then
119- if [ "$LATEST_GOOGLE_PLAY_INTERNAL_BUILD_NUMBER" -gt "$LATEST_GOOGLE_PLAY_PRODUCTION_BUILD_NUMBER" ]; then
120- LATEST_BUILD_NUMBER=$(($LATEST_GOOGLE_PLAY_INTERNAL_BUILD_NUMBER + 1))
121- echo "New build number for this build: $LATEST_BUILD_NUMBER"
122- echo LATEST_BUILD_NUMBER=$LATEST_BUILD_NUMBER >> $CM_ENV
123- else
124- LATEST_BUILD_NUMBER=$(($LATEST_GOOGLE_PLAY_PRODUCTION_BUILD_NUMBER + 1))
125- echo "New build number for this build: $LATEST_BUILD_NUMBER"
126- echo LATEST_BUILD_NUMBER=$LATEST_BUILD_NUMBER >> $CM_ENV
127- fi
122+ if [ "$LATEST_GOOGLE_PLAY_INTERNAL_BUILD_NUMBER" -gt "$LATEST_GOOGLE_PLAY_PRODUCTION_BUILD_NUMBER" ]; then
123+ LATEST_BUILD_NUMBER=$(($LATEST_GOOGLE_PLAY_INTERNAL_BUILD_NUMBER + 1))
124+ echo "New build number for this build: $LATEST_BUILD_NUMBER"
125+ echo LATEST_BUILD_NUMBER=$LATEST_BUILD_NUMBER >> $CM_ENV
126+ else
127+ LATEST_BUILD_NUMBER=$(($LATEST_GOOGLE_PLAY_PRODUCTION_BUILD_NUMBER + 1))
128+ echo "New build number for this build: $LATEST_BUILD_NUMBER"
129+ echo LATEST_BUILD_NUMBER=$LATEST_BUILD_NUMBER >> $CM_ENV
130+ fi
128131 else
129- echo "One or both build numbers are 0, using build number"
130- LATEST_BUILD_NUMBER="$APP_VERSION_NAME.$PROJECT_BUILD_NUMBER"
132+ # Display error and exit
133+ echo "One or both Google Play build numbers are 0" >&2
134+ exit 1
131135 fi
132136
133137 # Make latest build number be available in all build steps
@@ -138,20 +142,26 @@ workflows:
138142 # Build app
139143 # Not running 'fetchAndPackageDefaultConfiguration' for repo.ria as necessary files are already setup
140144 if [[ "${{ inputs.defaultCentralConfigurationTslUrl_input }}" == *"repo.ria"* ]]; then
141- ./gradlew clean --no-daemon -PappVersionName=$APP_VERSION -PappVersionCode=$LATEST_BUILD_NUMBER assemble --debug
145+ ./gradlew clean --no-daemon -PappVersionName=$APP_VERSION -PappVersionCode=$LATEST_BUILD_NUMBER assemble --debug --quiet
142146 else
143- ./gradlew clean --no-daemon fetchAndPackageDefaultConfiguration --args="${{ inputs.defaultCentralConfigurationUrl_input }} ${{ inputs.defaultCentralConfigurationUpdateInterval_input }}" -PappVersionName=$APP_VERSION -PappVersionCode=$LATEST_BUILD_NUMBER assemble --debug
147+ ./gradlew clean --no-daemon fetchAndPackageDefaultConfiguration --args="${{ inputs.defaultCentralConfigurationUrl_input }} ${{ inputs.defaultCentralConfigurationUpdateInterval_input }}" -PappVersionName=$APP_VERSION -PappVersionCode=$LATEST_BUILD_NUMBER assemble --debug --quiet
144148 fi
145149 - name : Align APK
146150 script : |
147- zipalign -v -p 4 app/build/outputs/apk/release/app-release-unsigned.apk app/build/outputs/apk/release/app-release-unsigned-aligned.apk
151+ OUTPUT_DIR="app/build/outputs/apk/release"
152+ zipalign -v -p 4 $OUTPUT_DIR/app-release-unsigned.apk $OUTPUT_DIR/app-release-unsigned-aligned.apk
148153 - name : Sign APK
149154 script : |
150- apksigner sign --ks $CM_KEYSTORE_PATH --ks-pass pass:$CM_KEYSTORE_PASSWORD --out app/build/outputs/apk/release/app-release_$APP_VERSION.apk app/build/outputs/apk/release/app-release-unsigned-aligned.apk
155+ OUTPUT_DIR="app/build/outputs/apk/release"
156+ apksigner sign --ks $CM_KEYSTORE_PATH --ks-pass pass:$CM_KEYSTORE_PASSWORD --out $OUTPUT_DIR/app-release_$APP_VERSION.apk $OUTPUT_DIR/app-release-unsigned-aligned.apk
151157 - name : Rename and move APK
152158 script : |
153- mkdir -p app/build/outputs/apk/release/signed-debug/
154- mv app/build/outputs/apk/release/app-release_$APP_VERSION.apk app/build/outputs/apk/release/signed/RIA_DigiDoc_dev_$APP_VERSION.apk
159+ OUTPUT_DIR="app/build/outputs/apk/release"
160+ SIGNED_DEBUG_DIR="$OUTPUT_DIR/signed-debug"
161+
162+ mkdir -p "SIGNED_DEBUG_DIR"
163+
164+ mv "$OUTPUT_DIR/app-release_$APP_VERSION.apk" "SIGNED_DEBUG_DIR/RIA_DigiDoc_dev_$APP_VERSION.apk"
155165 artifacts :
156166 - app/build/outputs/apk/release/signed-debug/*.apk
157167 publishing :
@@ -203,8 +213,9 @@ workflows:
203213 echo LATEST_BUILD_NUMBER=$LATEST_BUILD_NUMBER >> $CM_ENV
204214 fi
205215 else
206- echo "One or both build numbers are 0, using build number"
207- LATEST_BUILD_NUMBER="$APP_VERSION_NAME.$PROJECT_BUILD_NUMBER"
216+ # Display error and exit
217+ echo "One or both build numbers are 0" >&2
218+ exit 1
208219 fi
209220
210221 # Make latest build number be available in all build steps
@@ -213,17 +224,23 @@ workflows:
213224 echo "Using app version: $APP_VERSION"
214225
215226 # Build app
216- ./gradlew clean --no-daemon fetchAndPackageDefaultConfiguration -PappVersionName=$APP_VERSION -PappVersionCode=$LATEST_BUILD_NUMBER assembleRelease
227+ ./gradlew clean --no-daemon fetchAndPackageDefaultConfiguration -PappVersionName=$APP_VERSION -PappVersionCode=$LATEST_BUILD_NUMBER assembleRelease --quiet
217228 - name : Align APK
218229 script : |
219- zipalign -v -p 4 app/build/outputs/apk/release/app-release-unsigned.apk app/build/outputs/apk/release/app-release-unsigned-aligned.apk
230+ OUTPUT_DIR="app/build/outputs/apk/release"
231+ zipalign -v -p 4 $OUTPUT_DIR/app-release-unsigned.apk $OUTPUT_DIR/app-release-unsigned-aligned.apk
220232 - name : Sign APK
221233 script : |
222- apksigner sign --ks $CM_KEYSTORE_PATH --ks-pass pass:$CM_KEYSTORE_PASSWORD --out app/build/outputs/apk/release/app-release_$APP_VERSION.apk app/build/outputs/apk/release/app-release-unsigned-aligned.apk
234+ OUTPUT_DIR="app/build/outputs/apk/release"
235+ apksigner sign --ks $CM_KEYSTORE_PATH --ks-pass pass:$CM_KEYSTORE_PASSWORD --out $OUTPUT_DIR/app-release_$APP_VERSION.apk $OUTPUT_DIR/app-release-unsigned-aligned.apk
223236 - name : Rename and move APK
224237 script : |
225- mkdir -p app/build/outputs/apk/release/signed/
226- mv app/build/outputs/apk/release/app-release_$APP_VERSION.apk app/build/outputs/apk/release/signed/RIA_DigiDoc_$APP_VERSION.apk
238+ OUTPUT_DIR="app/build/outputs/apk/release"
239+ SIGNED_DIR="$OUTPUT_DIR/signed"
240+
241+ mkdir -p "SIGNED_DIR"
242+
243+ mv "$OUTPUT_DIR/app-release_$APP_VERSION.apk" "SIGNED_DIR/RIA_DigiDoc_$APP_VERSION.apk"
227244 artifacts :
228245 - app/build/outputs/apk/release/signed/*.apk
229246 publishing :
0 commit comments