name: Release on: push: tags: - 'v*' jobs: release: runs-on: ubuntu-gitea steps: - name: Prep For Local Builds run: echo "${LOCIP} gitea.comnenos" >> /etc/hosts - uses: actions/checkout@v4 - name: Install Build Dependencies run: | apt update apt -y --no-install-recommends install \ wget \ file \ fuse \ libfuse2 \ python3 \ python3-pip - name: Install .NET SDK run: | wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh chmod +x dotnet-install.sh ./dotnet-install.sh --channel 8.0 --install-dir /usr/local/dotnet ln -sf /usr/local/dotnet/dotnet /usr/bin/dotnet - name: Install AppImageTool run: | wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage \ -O /usr/local/bin/appimagetool chmod +x /usr/local/bin/appimagetool - name: Build Linux Packages run: | cd NotePad python3 publish.py linux both - name: Create Release Archive run: | 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 Tarball cp publish/tarball/notepad-0.1.0-linux-x64.tar.gz \ release/notepad-${VERSION}-linux-x64.tar.gz # Generate checksums cd release sha256sum NotePad-${VERSION}-x86_64.AppImage > NotePad-${VERSION}-x86_64.AppImage.sha256 sha256sum notepad-${VERSION}-linux-x64.tar.gz > notepad-${VERSION}-linux-x64.tar.gz.sha256 ls -lh # For debugging - name: Create Release env: GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN }} run: | VERSION=${GITHUB_REF#refs/tags/} # Create release curl -X POST "https://repos.gmgauthier.com/api/v1/repos/${GITHUB_REPOSITORY}/releases" \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/json" \ -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\`\" }" > 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 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 # 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" \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: application/gzip" \ --data-binary @release/notepad-${VERSION}-linux-x64.tar.gz # Upload tarball checksum curl -X POST "https://repos.gmgauthier.com/api/v1/repos/${GITHUB_REPOSITORY}/releases/${RELEASE_ID}/assets?name=notepad-${VERSION}-linux-x64.tar.gz.sha256" \ -H "Authorization: token ${GITEA_TOKEN}" \ -H "Content-Type: text/plain" \ --data-binary @release/notepad-${VERSION}-linux-x64.tar.gz.sha256