Ajout de la compilation signée de l’apk
This commit is contained in:
		| @ -15,7 +15,6 @@ on: | ||||
|           - oui | ||||
|           - non | ||||
|  | ||||
|  | ||||
| jobs: | ||||
|   release: | ||||
|     runs-on: ubuntu-latest | ||||
| @ -24,7 +23,7 @@ jobs: | ||||
|       - name: 📦 Cloner le dépôt | ||||
|         uses: actions/checkout@v3 | ||||
|         with: | ||||
|           fetch-depth: 0  # important pour récupérer tout l'historique | ||||
|           fetch-depth: 0 | ||||
|  | ||||
|       - name: 🔧 Préparation de Git (tags) | ||||
|         run: git fetch --tags | ||||
| @ -95,8 +94,6 @@ jobs: | ||||
|           COMMITS: ${{ steps.changelog.outputs.modifications }} | ||||
|         run: | | ||||
|           TAG_NAME="${{ github.event.inputs.tag }}" | ||||
|            | ||||
|           # Échappement du contenu pour JSON | ||||
|           DESCRIPTION="Changelog:"$'\n'"$COMMITS" | ||||
|           ESCAPED_DESCRIPTION=$(printf '%s\n' "$DESCRIPTION" | jq -Rsa .) | ||||
|  | ||||
| @ -114,7 +111,6 @@ jobs: | ||||
|           ID_RELEASE=$(echo "$REPONSE" | jq -r .id) | ||||
|           echo "id_release=$ID_RELEASE" >> $GITHUB_OUTPUT | ||||
|  | ||||
|  | ||||
|       - name: 🔍️ Extraire les informations de l’application | ||||
|         id: extraire-info-gradle | ||||
|         if: ${{ github.event.inputs.build_apk == 'oui' }} | ||||
| @ -141,9 +137,29 @@ jobs: | ||||
|           api-level: ${{ steps.extraire-info-gradle.outputs.sdk }} | ||||
|           build-tools-version: ${{ steps.extraire-info-gradle.outputs.sdk }}.0.3 | ||||
|  | ||||
|       - name: 🛠️ Compilation de l’application (APK) | ||||
|       - name: 🔐 Récupérer et décoder le keystore | ||||
|         id: decode-keystore | ||||
|         if: ${{ github.event.inputs.build_apk == 'oui' }} | ||||
|         run: ./gradlew assembleRelease | ||||
|         env: | ||||
|           KEYSTORE_B64: ${{ secrets.KEYSTORE_B64 }} | ||||
|         run: | | ||||
|           echo "$KEYSTORE_B64" | base64 -d > app/keystore.jks | ||||
|           ls -1 app/keystore.jks | ||||
|           echo "keystore_path=$(realpath app/keystore.jks)" >> $GITHUB_OUTPUT | ||||
|  | ||||
|       - name: 🛠️ Compilation signée de l’application (APK) | ||||
|         if: ${{ github.event.inputs.build_apk == 'oui' }} | ||||
|         env: | ||||
|           KEYSTORE_FILE: ${{ steps.decode-keystore.outputs.keystore_path }} | ||||
|           KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} | ||||
|           KEY_ALIAS: ${{ secrets.KEYSTORE_ALIAS }} | ||||
|           KEY_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} | ||||
|         run: | | ||||
|           ./gradlew assembleRelease \ | ||||
|             -Pandroid.injected.signing.store.file=$KEYSTORE_FILE \ | ||||
|             -Pandroid.injected.signing.store.password=$KEYSTORE_PASSWORD \ | ||||
|             -Pandroid.injected.signing.key.alias=$KEY_ALIAS \ | ||||
|             -Pandroid.injected.signing.key.password=$KEY_PASSWORD | ||||
|  | ||||
|       - name: 🏷️ Renommer l’APK avec le nom de l’application et le tag | ||||
|         id: renommer-apk | ||||
| @ -152,12 +168,12 @@ jobs: | ||||
|           APP_NAME=${{ steps.extraire-info-gradle.outputs.app_name }} | ||||
|           TAG=${{ github.event.inputs.tag }} | ||||
|           APK_DIR="app/build/outputs/apk/release" | ||||
|            | ||||
|  | ||||
|           APKs="" | ||||
|           for apk in "$APK_DIR"/*.apk; do | ||||
|             BASENAME=$(basename "$apk")                          # ex: app-release-unsigned.apk | ||||
|             SUFFIX=${BASENAME#app}                              # ex: -release-unsigned.apk | ||||
|             NEW_NAME="${APP_NAME}${SUFFIX%\.apk}_${TAG}.apk"   # ex: MonApp-release-unsigned_v1.2.3.apk | ||||
|             BASENAME=$(basename "$apk") | ||||
|             SUFFIX=${BASENAME#app} | ||||
|             NEW_NAME="${APP_NAME}${SUFFIX%\.apk}_${TAG}.apk" | ||||
|             mv "$apk" "$APK_DIR/$NEW_NAME" | ||||
|             APKs+=" $APK_DIR/$NEW_NAME" | ||||
|           done | ||||
|  | ||||
| @ -12,8 +12,18 @@ android { | ||||
|         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" | ||||
|     } | ||||
|  | ||||
|     signingConfigs { | ||||
|         release { | ||||
|             storeFile file(System.getenv("KEYSTORE_FILE")) | ||||
|             storePassword System.getenv("KEYSTORE_PASSWORD") | ||||
|             keyAlias System.getenv("KEY_ALIAS") | ||||
|             keyPassword System.getenv("KEY_PASSWORD") | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     buildTypes { | ||||
|         release { | ||||
|             signingConfig signingConfigs.release | ||||
|             minifyEnabled true | ||||
|             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' | ||||
|         } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 lionel
					lionel