Skip to content
This repository was archived by the owner on Oct 27, 2025. It is now read-only.

Commit 7729813

Browse files
committed
Update codemagic.yaml
1 parent 206324d commit 7729813

File tree

1 file changed

+57
-40
lines changed

1 file changed

+57
-40
lines changed

codemagic.yaml

Lines changed: 57 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)