diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 20d1923..ade71f2 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -34,10 +34,22 @@ jobs: ./dotnet-install.sh --channel 8.0 --install-dir /usr/local/dotnet ln -sf /usr/local/dotnet/dotnet /usr/bin/dotnet - - name: Install AppImageTool + - name: Setup FUSE and AppImageTool run: | + # Install and load FUSE + modprobe fuse || echo "Warning: Could not load fuse module" + + # Download and extract appimagetool without FUSE (using --appimage-extract) wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage \ - -O /usr/local/bin/appimagetool + -O appimagetool.AppImage + chmod +x appimagetool.AppImage + ./appimagetool.AppImage --appimage-extract + + # Create wrapper script that uses extracted version + cat > /usr/local/bin/appimagetool << 'EOF' +#!/bin/bash +/workspace/gmgauthier/notepad/squashfs-root/AppRun "$@" +EOF chmod +x /usr/local/bin/appimagetool - name: Build Linux Packages @@ -50,9 +62,11 @@ jobs: VERSION=${GITHUB_REF#refs/tags/} mkdir -p release - # Copy AppImage - cp publish/appimage/NotePad-0.1.0-x86_64.AppImage \ - release/NotePad-${VERSION}-x86_64.AppImage + # Copy AppImage (if it exists) + if [ -f publish/appimage/NotePad-0.1.0-x86_64.AppImage ]; then + cp publish/appimage/NotePad-0.1.0-x86_64.AppImage \ + release/NotePad-${VERSION}-x86_64.AppImage + fi # Copy Tarball cp publish/tarball/notepad-0.1.0-linux-x64.tar.gz \ @@ -60,7 +74,9 @@ jobs: # Generate checksums cd release - sha256sum NotePad-${VERSION}-x86_64.AppImage > NotePad-${VERSION}-x86_64.AppImage.sha256 + if [ -f NotePad-${VERSION}-x86_64.AppImage ]; then + sha256sum NotePad-${VERSION}-x86_64.AppImage > NotePad-${VERSION}-x86_64.AppImage.sha256 + fi sha256sum notepad-${VERSION}-linux-x64.tar.gz > notepad-${VERSION}-linux-x64.tar.gz.sha256 ls -lh # For debugging @@ -77,22 +93,23 @@ jobs: -d "{ \"tag_name\": \"${VERSION}\", \"name\": \"NotePad ${VERSION}\", - \"body\": \"Release ${VERSION}\n\n## Linux Downloads\n- **AppImage**: Portable, single-file executable (no installation needed)\n- **Tarball**: Traditional installation with \`sudo ./install.sh\`\" + \"body\": \"Release ${VERSION}\n\n## Linux Downloads\n- **AppImage**: Portable, single-file executable (no installation needed)\n- **Tarball**: Extract and run \`sudo ./install.sh\` to install\" }" > release_response.json RELEASE_ID=$(cat release_response.json | grep -o '"id":[0-9]*' | head -1 | cut -d':' -f2) - # Upload AppImage - curl -X POST "https://repos.gmgauthier.com/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=NotePad-${VERSION}-x86_64.AppImage" \ - -H "Authorization: token ${GITEA_TOKEN}" \ - -H "Content-Type: application/octet-stream" \ - --data-binary @release/NotePad-${VERSION}-x86_64.AppImage + # Upload AppImage if it exists + if [ -f release/NotePad-${VERSION}-x86_64.AppImage ]; then + curl -X POST "https://repos.gmgauthier.com/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=NotePad-${VERSION}-x86_64.AppImage" \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/octet-stream" \ + --data-binary @release/NotePad-${VERSION}-x86_64.AppImage - # Upload AppImage checksum - curl -X POST "https://repos.gmgauthier.com/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=NotePad-${VERSION}-x86_64.AppImage.sha256" \ - -H "Authorization: token ${GITEA_TOKEN}" \ - -H "Content-Type: text/plain" \ - --data-binary @release/NotePad-${VERSION}-x86_64.AppImage.sha256 + curl -X POST "https://repos.gmgauthier.com/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=NotePad-${VERSION}-x86_64.AppImage.sha256" \ + -H "Authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: text/plain" \ + --data-binary @release/NotePad-${VERSION}-x86_64.AppImage.sha256 + fi # Upload tarball curl -X POST "https://repos.gmgauthier.com/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=notepad-${VERSION}-linux-x64.tar.gz" \