feat/postit-acl #32
1 changed files with 29 additions and 6 deletions
ci(forgejo): build .NET projects directly, skip docker
L'image runner pazof/yavsc-build-env a le SDK .NET 10 et le workload Android, mais PAS le binaire 'docker' ni de daemon Docker. Le 'Build de l'image Docker' du workflow plantait avec 'docker: command not found'. Fix : on exécute directement les commandes dotnet du Dockerfile (restore + build Yavsc.Org/Api/Blogs + build PostIt.Android -r android-arm64), puis on copie l'APK depuis le chemin de sortie standard bin/Release/net10.0-android/android-arm64/. Note : le Dockerfile reste la voie canonique pour les builds en local et via GitHub Actions (qui a docker). Ce fix concerne uniquement le workflow Forgejo Actions où le runner n'a pas Docker.
commit
64d25bb2f1
|
|
@ -166,14 +166,37 @@ jobs:
|
||||||
echo "EOF" >> "$GITHUB_ENV"
|
echo "EOF" >> "$GITHUB_ENV"
|
||||||
echo "IS_PRERELEASE=$([ "$CHANNEL" = "stable" ] && echo false || echo true)" >> "$GITHUB_ENV"
|
echo "IS_PRERELEASE=$([ "$CHANNEL" = "stable" ] && echo false || echo true)" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
- name: Build de l'image Docker (stage build-env uniquement)
|
- name: Build des projets .NET (sans docker)
|
||||||
run: cd /src/_src && docker build --build-arg ANDROID_TARGET_RID=android-arm64 --target build-env -t postit-android .
|
# L'image runner (pazof/yavsc-build-env) a le SDK .NET 10 + le
|
||||||
|
# workload Android, mais PAS le binaire `docker` ni de daemon
|
||||||
- name: Extraire l'APK signé du conteneur
|
# Docker. On exécute donc les commandes dotnet directement
|
||||||
|
# au lieu de passer par `docker build`.
|
||||||
|
# Equivalent des stages build-env du Dockerfile (lignes
|
||||||
|
# restore + build Yavsc.Org + build Yavsc.Api + build
|
||||||
|
# Yavsc.Blogs + build PostIt.Android -r android-arm64).
|
||||||
run: |
|
run: |
|
||||||
docker create --name extractor postit-android
|
cd /src/_src
|
||||||
docker cp extractor:/src/src/PostIt/PostIt.Android/bin/Release/net10.0-android/android-arm64/com.CompanyName.PostIt-Signed.apk /src/_src/PostIt.Android.apk
|
dotnet restore
|
||||||
docker rm extractor
|
dotnet build src/Yavsc.Org/Yavsc.Org.csproj -c Release --no-restore -clp:ErrorsOnly
|
||||||
|
dotnet build src/Yavsc.Api/Yavsc.Api.csproj -c Release --no-restore -clp:ErrorsOnly
|
||||||
|
dotnet build src/Yavsc.Blogs/Yavsc.Blogs.csproj -c Release --no-restore -clp:ErrorsOnly
|
||||||
|
dotnet build src/PostIt/PostIt.Android/PostIt.Android.csproj \
|
||||||
|
-c Release --no-restore -clp:ErrorsOnly -r android-arm64
|
||||||
|
|
||||||
|
- name: Copier l'APK signé vers un emplacement connu
|
||||||
|
# Le build Android avec -r android-arm64 produit l'APK dans
|
||||||
|
# bin/Release/net10.0-android/android-arm64/. On le copie à
|
||||||
|
# la racine du checkout pour que l'étape d'upload le trouve.
|
||||||
|
run: |
|
||||||
|
cd /src/_src
|
||||||
|
APK=src/PostIt/PostIt.Android/bin/Release/net10.0-android/android-arm64/com.CompanyName.PostIt-Signed.apk
|
||||||
|
if [[ ! -f "$APK" ]]; then
|
||||||
|
echo "::error::APK not found at $APK"
|
||||||
|
ls -la src/PostIt/PostIt.Android/bin/Release/net10.0-android/ 2>/dev/null || true
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
cp "$APK" /src/_src/PostIt.Android.apk
|
||||||
|
ls -la /src/_src/PostIt.Android.apk
|
||||||
|
|
||||||
- name: Publier la release Forgejo via l'API REST
|
- name: Publier la release Forgejo via l'API REST
|
||||||
# Pas d'action tierce (pas de Node dans l'image runner).
|
# Pas d'action tierce (pas de Node dans l'image runner).
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue