67 lines
2.4 KiB
YAML
67 lines
2.4 KiB
YAML
name: Build and Push Yavsc Apk
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
tags:
|
|
- 'v*'
|
|
workflow_dispatch:
|
|
|
|
# softprops/action-gh-release a besoin de contents: write
|
|
# pour publier une release + uploader un asset.
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
apk-deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout du code
|
|
uses: actions/checkout@v7
|
|
|
|
# 1. Votre étape de build actuelle (on nomme l'image "postit-android")
|
|
# --target build-env : on ne veut que le stage de build (qui
|
|
# contient les artefacts .apk). Sans --target, Docker ciblerait
|
|
# le DERNIER stage du Dockerfile (blogs-runtime, qui est une
|
|
# image ASP.NET runtime sans aucun APK à extraire).
|
|
- name: Build de l'image Docker
|
|
run: docker build --build-arg ANDROID_TARGET_RID=android-arm64 --target build-env -t postit-android .
|
|
# 2. EXTRACTION : Créer un conteneur éphémère pour copier l'APK vers l'hôte GitHub
|
|
- name: Extraire l'APK du conteneur Docker
|
|
run: |
|
|
docker create --name extractor postit-android
|
|
docker cp extractor:/src/src/PostIt/PostIt.Android/bin/Release/net10.0-android/android-arm64/com.CompanyName.PostIt-Signed.apk ./PostIt.Android.apk
|
|
docker rm extractor
|
|
|
|
- name: Téléverser l'APK en tant qu'Artéfact GitHub
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: application-apk-release
|
|
path: ./PostIt.Android.apk
|
|
retention-days: 7
|
|
|
|
publish-release:
|
|
# Uniquement déclenché par un tag v*. Le job apk-deploy tourne en
|
|
# parallèle, on partage l'artefact entre jobs.
|
|
if: startsWith(github.ref, 'refs/tags/')
|
|
needs: apk-deploy
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Récupérer l'APK depuis l'artefact
|
|
uses: actions/download-artifact@v7
|
|
with:
|
|
name: application-apk-release
|
|
path: ./
|
|
|
|
- name: Publier la release GitHub et uploader l'APK
|
|
uses: softprops/action-gh-release@v2
|
|
with:
|
|
# Le nom de fichier final dans la release. C'est ce qui
|
|
# apparaîtra dans l'asset et donc dans le permalink :
|
|
# https://github.com/<owner>/<repo>/releases/latest/download/PostIt.Android.apk
|
|
files: ./PostIt.Android.apk
|
|
# generate_release_notes: true -> évite d'avoir à maintenir
|
|
# le corps de release à la main. Décommente si tu veux.
|
|
# generate_release_notes: true
|
|
|