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