Skip to content

teste 12$

teste 12$ #13

name: Build and Release (Desktop)
on:
push:
branches:
- linux-release
tags:
- "*"
paths:
- "DocViewerDesktop/**"
workflow_dispatch:
env:
APP_NAME: docviewer
jobs:
build-linux:
name: Build Linux (.deb)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: "3.9"
- name: Set version
run: |
if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
else
echo "VERSION=0.0.${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV
fi
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r DocViewerDesktop/requirements.txt
pip install pyinstaller
- name: Build with PyInstaller (Linux)
run: |
pyinstaller --noconsole --name DocViewer \
--icon="DocViewerDesktop/resources/icons_svg/doc_icon.ico" \
--add-data "DocViewerDesktop/ui/dark-high-v0.qss:ui" \
--add-data "DocViewerDesktop/resources/icons_svg/*:resources/icons_svg" \
--hidden-import="ui.ui_utils" \
--hidden-import="editor.editor_core" \
--hidden-import="editor.actions.file_actions" \
--hidden-import="editor.actions.edit_actions" \
DocViewerDesktop/main.py
- name: Build .deb package
run: |
sudo apt-get update
sudo apt-get install -y ruby ruby-dev build-essential
sudo gem install --no-document fpm
mkdir -p package/opt/docviewer
mkdir -p package/usr/bin
mkdir -p package/usr/share/applications
mkdir -p package/usr/share/icons/hicolor/256x256/apps
cp -r dist/DocViewer/* package/opt/docviewer/
chmod +x package/opt/docviewer/DocViewer
cat <<'EOF' > package/usr/bin/docviewer
#!/bin/sh
exec /opt/docviewer/DocViewer "$@"
EOF
chmod +x package/usr/bin/docviewer
cp DocViewerDesktop/resources/icons_svg/doc_icon.png \
package/usr/share/icons/hicolor/256x256/apps/docviewer.png
cat <<EOF > package/usr/share/applications/docviewer.desktop
[Desktop Entry]
Type=Application
Name=DocViewer
Exec=docviewer
Icon=docviewer
Terminal=false
Categories=Utility;Office;
EOF
fpm -s dir -t deb \
-n docviewer \
-v "$VERSION" \
--architecture amd64 \
--depends "libglib2.0-0" \
--depends "libxkbcommon0" \
--depends "libxcb1" \
--depends "libgl1" \
package/
mkdir -p artifacts
mv docviewer_${VERSION}_amd64.deb artifacts/
- name: Upload Linux artifact
uses: actions/upload-artifact@v4
with:
name: linux-deb
path: artifacts/*.deb
build-windows:
name: Build Windows (zip)
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: "3.9"
- name: Set version
shell: bash
run: |
if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
echo "VERSION=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
else
echo "VERSION=0.0.${GITHUB_RUN_NUMBER}" >> $GITHUB_ENV
fi
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r DocViewerDesktop/requirements.txt
pip install pyinstaller
- name: Build with PyInstaller (Windows)
shell: bash
run: |
pyinstaller --noconsole --name DocViewer \
--icon="DocViewerDesktop/resources/icons_svg/doc_icon.ico" \
--add-data "DocViewerDesktop/ui/dark-high-v0.qss;ui" \
--add-data "DocViewerDesktop/resources/icons_svg/*;resources/icons_svg" \
--hidden-import="ui.ui_utils" \
--hidden-import="editor.editor_core" \
--hidden-import="editor.actions.file_actions" \
--hidden-import="editor.actions.edit_actions" \
DocViewerDesktop/main.py
- name: Zip Windows build
shell: pwsh
run: |
mkdir artifacts
Compress-Archive -Path dist\DocViewer\* `
-DestinationPath artifacts\docviewer-windows-${env:VERSION}.zip
- name: Upload Windows artifact
uses: actions/upload-artifact@v4
with:
name: windows-zip
path: artifacts/*.zip
release:
name: Create GitHub Release
runs-on: ubuntu-latest
needs: [build-linux, build-windows]
steps:
- uses: actions/download-artifact@v4
- name: Create Release
id: create_release
uses: actions/create-release@v1
with:
tag_name: v${{ env.VERSION }}
release_name: "DocViewer v${{ env.VERSION }}"
draft: false
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Linux .deb
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: linux-deb/*.deb
asset_name: docviewer-linux-amd64.deb
asset_content_type: application/vnd.debian.binary-package
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload Windows ZIP
uses: actions/upload-release-asset@v1
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: windows-zip/*.zip
asset_name: docviewer-windows.zip
asset_content_type: application/octet-stream
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}