fix(logger): agregar FileHandler para binarios compilados #23
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build and Release Fiscalberry | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| workflow_dispatch: | |
| jobs: | |
| # ============================================ | |
| # LINUX BUILDS (GUI + CLI) | |
| # ============================================ | |
| build-linux: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.11" | |
| - name: Cache pip dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-${{ hashFiles('requirements*.txt') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pip- | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libcups2-dev xvfb | |
| - name: Install Python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| pip install -r requirements.kivy.txt | |
| pip install pyinstaller | |
| - name: Build Linux GUI | |
| env: | |
| KIVY_NO_CONSOLELOG: 1 | |
| KIVY_NO_ARGS: 1 | |
| run: | | |
| PYTHONPATH=src xvfb-run -a pyinstaller fiscalberry-gui.spec | |
| - name: Build Linux CLI | |
| run: | | |
| PYTHONPATH=src xvfb-run -a pyinstaller fiscalberry-cli.spec | |
| - name: Package Linux Binaries | |
| run: | | |
| cd dist | |
| tar -czf fiscalberry-linux-gui.tar.gz fiscalberry-gui | |
| tar -czf fiscalberry-linux-cli.tar.gz fiscalberry-cli | |
| - name: Upload Linux GUI Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: fiscalberry-linux-gui | |
| path: dist/fiscalberry-linux-gui.tar.gz | |
| - name: Upload Linux CLI Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: fiscalberry-linux-cli | |
| path: dist/fiscalberry-linux-cli.tar.gz | |
| # ============================================ | |
| # WINDOWS BUILDS (GUI + CLI) | |
| # ============================================ | |
| build-windows: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.11" | |
| - name: Cache pip dependencies | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~\AppData\Local\pip\Cache | |
| key: ${{ runner.os }}-pip-${{ hashFiles('requirements*.txt') }} | |
| restore-keys: | | |
| ${{ runner.os }}-pip- | |
| - name: Install Python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| pip install -r requirements.kivy.txt | |
| pip install pyinstaller | |
| - name: Build Windows GUI | |
| env: | |
| KIVY_NO_CONSOLELOG: 1 | |
| KIVY_NO_ARGS: 1 | |
| KIVY_GL_BACKEND: mock | |
| run: | | |
| $env:PYTHONPATH="src" | |
| pyinstaller fiscalberry-gui.spec | |
| - name: Build Windows CLI | |
| env: | |
| KIVY_NO_CONSOLELOG: 1 | |
| KIVY_NO_ARGS: 1 | |
| KIVY_GL_BACKEND: mock | |
| run: | | |
| $env:PYTHONPATH="src" | |
| pyinstaller fiscalberry-cli.spec | |
| - name: Package Windows Binaries | |
| run: | | |
| cd dist | |
| Compress-Archive -Path fiscalberry-gui.exe -DestinationPath fiscalberry-windows-gui.zip | |
| Compress-Archive -Path fiscalberry-cli.exe -DestinationPath fiscalberry-windows-cli.zip | |
| - name: Upload Windows GUI Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: fiscalberry-windows-gui | |
| path: dist/fiscalberry-windows-gui.zip | |
| - name: Upload Windows CLI Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: fiscalberry-windows-cli | |
| path: dist/fiscalberry-windows-cli.zip | |
| # ============================================ | |
| # ANDROID GUI BUILD (con caché y signing) | |
| # ============================================ | |
| build-android: | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.11" | |
| # ========================================== | |
| # CACHÉ: Guarda las descargas de Buildozer | |
| # Esto incluye SDK, NDK, y dependencias compiladas | |
| # Ahorra ~20-30 minutos en builds subsecuentes | |
| # ========================================== | |
| - name: Cache Buildozer global directory | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.buildozer | |
| key: buildozer-global-${{ hashFiles('buildozer.ui.android.spec') }} | |
| restore-keys: | | |
| buildozer-global- | |
| - name: Cache Buildozer project directory | |
| uses: actions/cache@v4 | |
| with: | |
| path: .buildozer | |
| key: buildozer-project-${{ hashFiles('buildozer.ui.android.spec') }}-${{ hashFiles('src/**/*.py') }} | |
| restore-keys: | | |
| buildozer-project-${{ hashFiles('buildozer.ui.android.spec') }}- | |
| buildozer-project- | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y \ | |
| build-essential \ | |
| git \ | |
| zip \ | |
| unzip \ | |
| openjdk-17-jdk \ | |
| autoconf \ | |
| libtool \ | |
| pkg-config \ | |
| zlib1g-dev \ | |
| libncurses5-dev \ | |
| libncursesw5-dev \ | |
| cmake \ | |
| libffi-dev \ | |
| libssl-dev \ | |
| automake | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: "temurin" | |
| java-version: "17" | |
| - name: Set up Android SDK | |
| uses: android-actions/setup-android@v3 | |
| - name: Install Android SDK components | |
| run: | | |
| sdkmanager "platforms;android-33" "build-tools;33.0.2" "ndk;25.2.9519653" | |
| - name: Install Buildozer and dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install buildozer cython virtualenv | |
| - name: Build Android APK | |
| run: | | |
| cp buildozer.ui.android.spec buildozer.spec | |
| buildozer -v android debug | |
| - name: Find and rename APK | |
| id: find_apk | |
| run: | | |
| APK_PATH=$(find . -name "*.apk" -type f | head -1) | |
| echo "APK found: $APK_PATH" | |
| cp "$APK_PATH" ./fiscalberry-android-gui.apk | |
| - name: Upload Android Artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: fiscalberry-android-gui | |
| path: ./fiscalberry-android-gui.apk | |
| # ============================================ | |
| # CREATE GITHUB RELEASE | |
| # ============================================ | |
| create-release: | |
| needs: [build-linux, build-windows, build-android] | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/') | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download Linux GUI Artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: fiscalberry-linux-gui | |
| path: ./artifacts/ | |
| - name: Download Linux CLI Artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: fiscalberry-linux-cli | |
| path: ./artifacts/ | |
| - name: Download Windows GUI Artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: fiscalberry-windows-gui | |
| path: ./artifacts/ | |
| - name: Download Windows CLI Artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: fiscalberry-windows-cli | |
| path: ./artifacts/ | |
| - name: Download Android Artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: fiscalberry-android-gui | |
| path: ./artifacts/ | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| files: | | |
| ./artifacts/fiscalberry-linux-gui.tar.gz | |
| ./artifacts/fiscalberry-linux-cli.tar.gz | |
| ./artifacts/fiscalberry-windows-gui.zip | |
| ./artifacts/fiscalberry-windows-cli.zip | |
| ./artifacts/fiscalberry-android-gui.apk | |
| draft: false | |
| prerelease: false | |
| generate_release_notes: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |