mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-12 01:37:06 +02:00
ajean-linux, ajean-linux-arm, ajean-macos, ajean-macos-arm, ajean-windows.exe, ajean-windows-arm.exe. Le schema ne correspond plus a ajean-<GOOS>-<GOARCH> que cherchent les 0.7 : leur mise a jour automatique ne trouve aucun asset et echoue sans rien remplacer. C'est voulu — sinon elle installait le binaire 0.8 sans migrer, le service de lien repartait en boucle d'echec sur « link serve » disparu et le moteur perdait sa configuration. assetNameFor est isolee pour etre testee sur les six plateformes, plus un test qui verifie explicitement l'absence de collision avec le schema 0.7.
53 lines
2.5 KiB
YAML
53 lines
2.5 KiB
YAML
# Build macOS à la demande, SANS rien publier : produit AJEAN.app en artifact
|
|
# téléchargeable depuis l'onglet Actions (visible seulement par le dépôt).
|
|
# Sert à tester le bundle avant de décider d'une vraie release (release.yml).
|
|
name: mac-build
|
|
on:
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-go@v5
|
|
with:
|
|
go-version-file: go.mod
|
|
- name: build + bundle AJEAN.app (arm64)
|
|
run: |
|
|
mkdir -p dist
|
|
CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 \
|
|
go build -trimpath -ldflags="-s -w" -o dist/ajean-macos-arm ./cmd/ajean
|
|
mkdir -p /tmp/ajean.iconset
|
|
sips -s format png 'cmd/ajean/icon.ico' --out /tmp/icon.png >/dev/null 2>&1 || true
|
|
for s in 16 32 128 256 512; do
|
|
sips -z $s $s /tmp/icon.png --out "/tmp/ajean.iconset/icon_${s}x${s}.png" >/dev/null 2>&1 || true
|
|
done
|
|
iconutil -c icns /tmp/ajean.iconset -o /tmp/ajean.icns >/dev/null 2>&1 || true
|
|
app="dist/AJEAN.app"
|
|
mkdir -p "$app/Contents/MacOS" "$app/Contents/Resources"
|
|
cp dist/ajean-macos-arm "$app/Contents/MacOS/ajean"
|
|
chmod +x "$app/Contents/MacOS/ajean"
|
|
cp /tmp/ajean.icns "$app/Contents/Resources/ajean.icns" 2>/dev/null || true
|
|
printf '%s\n' \
|
|
'<?xml version="1.0" encoding="UTF-8"?>' \
|
|
'<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' \
|
|
'<plist version="1.0"><dict>' \
|
|
'<key>CFBundleName</key><string>AJEAN</string>' \
|
|
'<key>CFBundleDisplayName</key><string>AJEAN</string>' \
|
|
'<key>CFBundleExecutable</key><string>ajean</string>' \
|
|
'<key>CFBundleIdentifier</key><string>link.ajean.app</string>' \
|
|
'<key>CFBundleIconFile</key><string>ajean</string>' \
|
|
'<key>CFBundlePackageType</key><string>APPL</string>' \
|
|
'<key>LSMinimumSystemVersion</key><string>11.0</string>' \
|
|
'<key>LSUIElement</key><true/>' \
|
|
'<key>NSHighResolutionCapable</key><true/>' \
|
|
'</dict></plist>' > "$app/Contents/Info.plist"
|
|
codesign --force --deep -s - "$app" || true
|
|
(cd dist && zip -qry AJEAN-macos-arm.zip AJEAN.app && rm -rf AJEAN.app)
|
|
ls -l dist
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: AJEAN-macos-arm
|
|
path: dist/AJEAN-macos-arm.zip
|