name: release on: push: tags: - '*' jobs: build-deb: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.13' - name: Upgrade pip and enable wheel support run: python -m pip install --upgrade pip setuptools wheel - name: Install Requirements run: | pip install -r requirements.txt pip install pyinstaller - name: Debug Python lib run: | echo "Python version: $(python --version)" find /opt/hostedtoolcache -name "libpython*.so" 2>/dev/null || echo "Not found in toolcache" ls -la /lib/x86_64-linux-gnu/libpython* 2>/dev/null || echo "Not found in /lib" - name: Build binary run: pyinstaller gotify-tray.spec - name: Set version run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV - name: Install Ruby and fpm run: | sudo apt-get update sudo apt-get install -y ruby-full gem install fpm export PATH="$(ruby -e 'puts Gem.user_dir')/bin:$PATH" - name: Check fpm run: which fpm - name: Build Debian package run: | mkdir -p build/linux/opt mkdir -p build/linux/usr/share/applications mkdir -p build/linux/usr/share/icons cp -r dist/gotify-tray build/linux/opt/gotify-tray cp gotify_tray/gui/images/logo.ico build/linux/usr/share/icons/gotify-tray.ico cp gotifytray.desktop build/linux/usr/share/applications find build/linux/opt/gotify-tray -type f -exec chmod 644 -- {} + find build/linux/opt/gotify-tray -type d -exec chmod 755 -- {} + find build/linux/usr/share -type f -exec chmod 644 -- {} + chmod +x build/linux/opt/gotify-tray/gotify-tray fpm --verbose \ -C build/linux \ -s dir \ -t deb \ -p dist/ \ -n gotify-tray \ --url https://github.com/seird/gotify-tray \ -m k.dries@protonmail.com \ --description "Gotify Tray. A tray notification application for receiving messages from a Gotify server." \ --category internet \ --version "${{github.ref_name#v}}" \ --license GPLv3 - name: Check deb file run: ls -la dist/ - name: Upload artifact uses: actions/upload-artifact@v2 with: name: gotify-tray_${{ env.VERSION }}_amd64.deb path: dist/gotify-tray_${{ env.VERSION }}_amd64.deb release: runs-on: ubuntu-latest needs: [build-deb] steps: - uses: actions/checkout@v4 - name: Set version run: echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV - uses: actions/download-artifact@v2 with: name: gotify-tray_${{ env.VERSION }}_amd64.deb - name: Release uses: marvinpinto/action-automatic-releases@latest with: repo_token: "${{ secrets.GITEA_TOKEN }}" prerelease: false files: | gotify-tray_${{ env.VERSION }}_amd64.deb