feat: add gitea workflow
All checks were successful
Build and Release Zed Editor / check-version (push) Successful in 20s
Build and Release Zed Editor / build-and-release (push) Successful in 44s

This commit is contained in:
2025-10-13 14:05:11 +02:00
parent 7bd7a317f3
commit 45a002fd47
4 changed files with 317 additions and 35 deletions

View File

@@ -9,57 +9,57 @@ EXTRACT_DIR = $(BUILD_DIR)/extracted
DEB_DIR = $(BUILD_DIR)/deb
CONTROL_DIR = $(DEB_DIR)/DEBIAN
# Déterminer la dernière version stable
# Determine the latest stable version
VERSION := $(shell curl -s https://api.github.com/repos/$(GITHUB_REPO)/releases/latest | jq -r '.tag_name' | sed 's/^v//')
DOWNLOAD_URL := $(shell curl -s https://api.github.com/repos/$(GITHUB_REPO)/releases/latest | jq -r '.assets[] | select(.name == "$(ARCHIVE_NAME)") | .browser_download_url')
# Nom du paquet
# Package name
PACKAGE_NAME = zed-editor
DEB_FILE = $(BUILD_DIR)/$(PACKAGE_NAME)_$(VERSION)_amd64.deb
all: deb
help:
@echo "Makefile pour créer un paquet .deb de Zed Editor"
@echo "Makefile to create a .deb package for Zed Editor"
@echo ""
@echo "Cibles disponibles:"
@echo " all - Construire le paquet .deb (cible par défaut)"
@echo " download - Télécharger l'archive depuis GitHub"
@echo " extract - Extraire l'archive"
@echo " deb - Créer le paquet .deb"
@echo " clean - Nettoyer les fichiers temporaires"
@echo " help - Afficher cette aide"
@echo "Available targets:"
@echo " all - Build the .deb package (default target)"
@echo " download - Download the archive from GitHub"
@echo " extract - Extract the archive"
@echo " deb - Create the .deb package"
@echo " clean - Clean up temporary files"
@echo " help - Display this help"
@echo ""
@echo "Version détectée: $(VERSION)"
@echo "Detected version: $(VERSION)"
# Télécharger l'archive si elle n'existe pas
# Download the archive if it doesn't exist
download: $(BUILD_DIR)/$(ARCHIVE_NAME)
$(BUILD_DIR)/$(ARCHIVE_NAME):
@echo "Téléchargement de Zed v$(VERSION)..."
@echo "Downloading Zed v$(VERSION)..."
@mkdir -p $(BUILD_DIR)
@if [ -z "$(DOWNLOAD_URL)" ]; then \
echo "Erreur: impossible de trouver l'URL de téléchargement"; \
echo "Error: unable to find download URL"; \
exit 1; \
fi
@wget -q --show-progress -O $@ "$(DOWNLOAD_URL)"
@echo "Téléchargement terminé: $@"
@echo "Download complete: $@"
# Extraire l'archive
# Extract the archive
extract: $(EXTRACT_DIR)/.extracted
$(EXTRACT_DIR)/.extracted: $(BUILD_DIR)/$(ARCHIVE_NAME)
@echo "Extraction de l'archive..."
@echo "Extracting archive..."
@mkdir -p $(EXTRACT_DIR)
@tar -xzf $(BUILD_DIR)/$(ARCHIVE_NAME) -C $(EXTRACT_DIR)
@touch $@
@echo "Extraction terminée"
@echo "Extraction complete"
# Créer le paquet .deb
# Create the .deb package
deb: $(DEB_FILE)
$(DEB_FILE): $(EXTRACT_DIR)/.extracted
@echo "Construction du paquet .deb..."
@echo "Building .deb package..."
@mkdir -p $(CONTROL_DIR)
@mkdir -p $(DEB_DIR)/opt/zed
@mkdir -p $(DEB_DIR)/usr/bin
@@ -67,23 +67,23 @@ $(DEB_FILE): $(EXTRACT_DIR)/.extracted
@mkdir -p $(DEB_DIR)/usr/share/icons/hicolor/512x512/apps
@mkdir -p $(DEB_DIR)/usr/share/icons/hicolor/1024x1024/apps
# Copier les fichiers de l'application
@echo "Copie des fichiers..."
# Copy application files
@echo "Copying files..."
@cp -r $(EXTRACT_DIR)/zed.app/* $(DEB_DIR)/opt/zed/
# Créer le lien symbolique pour le binaire
# Create symbolic link for the binary
@ln -sf /opt/zed/bin/zed $(DEB_DIR)/usr/bin/zed
# Copier les fichiers desktop et icônes
# Copy desktop file and icons
@cp $(EXTRACT_DIR)/zed.app/share/applications/zed.desktop $(DEB_DIR)/usr/share/applications/
@cp $(EXTRACT_DIR)/zed.app/share/icons/hicolor/512x512/apps/zed.png $(DEB_DIR)/usr/share/icons/hicolor/512x512/apps/
@cp $(EXTRACT_DIR)/zed.app/share/icons/hicolor/1024x1024/apps/zed.png $(DEB_DIR)/usr/share/icons/hicolor/1024x1024/apps/
# Mettre à jour le fichier .desktop pour pointer vers /opt/zed
# Update .desktop file to point to /opt/zed
@sed -i 's|Exec=.*|Exec=/opt/zed/bin/zed %U|g' $(DEB_DIR)/usr/share/applications/zed.desktop
@sed -i 's|Icon=.*|Icon=zed|g' $(DEB_DIR)/usr/share/applications/zed.desktop
# Créer le fichier de contrôle
# Create control file
@echo "Package: $(PACKAGE_NAME)" > $(CONTROL_DIR)/control
@echo "Version: $(VERSION)" >> $(CONTROL_DIR)/control
@echo "Section: editors" >> $(CONTROL_DIR)/control
@@ -95,21 +95,21 @@ $(DEB_FILE): $(EXTRACT_DIR)/.extracted
@echo " high-performance collaboration with humans and AI." >> $(CONTROL_DIR)/control
@echo "Homepage: https://zed.dev" >> $(CONTROL_DIR)/control
# Définir les permissions
# Set permissions
@chmod 755 $(DEB_DIR)/opt/zed/bin/zed
@chmod 755 $(DEB_DIR)/opt/zed/libexec/zed-editor
@find $(DEB_DIR)/opt/zed/lib -type f -name "*.so*" -exec chmod 644 {} \;
# Construire le paquet .deb
@echo "Création du paquet .deb..."
# Build the .deb package
@echo "Creating .deb package..."
@dpkg-deb --build $(DEB_DIR) $(DEB_FILE)
@echo ""
@echo "✓ Paquet créé avec succès: $(DEB_FILE)"
@echo "✓ Package successfully created: $(DEB_FILE)"
@echo ""
@echo "Pour installer: sudo dpkg -i $(DEB_FILE)"
@echo "To install: sudo dpkg -i $(DEB_FILE)"
# Nettoyer
# Clean up
clean:
@echo "Nettoyage..."
@echo "Cleaning up..."
@rm -rf $(BUILD_DIR)
@echo "Nettoyage terminé"
@echo "Cleanup complete"