Build Cross-Platform Releases #4
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 Cross-Platform Releases | |
| on: | |
| release: | |
| types: [created] | |
| workflow_dispatch: # Allow manual triggering | |
| inputs: | |
| create_release: | |
| description: 'Create a new release' | |
| required: false | |
| default: 'false' | |
| type: boolean | |
| jobs: | |
| build-windows: | |
| runs-on: windows-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.12' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| pip install -r requirements-dev.txt | |
| - name: Build Windows executable | |
| run: | | |
| python build-scripts/build-windows.py | |
| - name: Upload Windows artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ParentaScraper-Windows | |
| path: dist/ParentaScraper-Windows.zip | |
| retention-days: 30 | |
| # Upload to release if this is a release event | |
| - name: Upload to Release | |
| if: github.event_name == 'release' | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ github.event.release.upload_url }} | |
| asset_path: dist/ParentaScraper-Windows.zip | |
| asset_name: ParentaScraper-Windows.zip | |
| asset_content_type: application/zip | |
| build-macos: | |
| runs-on: macos-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.12' | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| pip install -r requirements-dev.txt | |
| - name: Build macOS app | |
| run: | | |
| python build-scripts/build-macos.py | |
| - name: Upload macOS artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ParentaScraper-macOS | |
| path: dist/ParentaScraper-Mac.dmg | |
| retention-days: 30 | |
| # Upload to release if this is a release event | |
| - name: Upload to Release | |
| if: github.event_name == 'release' | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ github.event.release.upload_url }} | |
| asset_path: dist/ParentaScraper-Mac.dmg | |
| asset_name: ParentaScraper-Mac.dmg | |
| asset_content_type: application/octet-stream | |
| build-linux: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.12' | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y binutils | |
| - name: Install Python dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| pip install -r requirements-dev.txt | |
| - name: Build Linux executable | |
| run: | | |
| python build-scripts/build-linux.py | |
| - name: Upload Linux artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ParentaScraper-Linux | |
| path: dist/ParentaScraper-Linux.tar.gz | |
| retention-days: 30 | |
| # Upload to release if this is a release event | |
| - name: Upload to Release | |
| if: github.event_name == 'release' | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ github.event.release.upload_url }} | |
| asset_path: dist/ParentaScraper-Linux.tar.gz | |
| asset_name: ParentaScraper-Linux.tar.gz | |
| asset_content_type: application/gzip | |
| # Create release if manually triggered | |
| create-release: | |
| runs-on: ubuntu-latest | |
| needs: [build-windows, build-macos, build-linux] | |
| if: github.event_name == 'workflow_dispatch' && github.event.inputs.create_release == 'true' | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Create Release | |
| id: create_release | |
| uses: actions/create-release@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: v${{ github.run_number }} | |
| release_name: Parenta Scraper v${{ github.run_number }} | |
| draft: false | |
| prerelease: false | |
| body: | | |
| ## Parenta Scraper Release v${{ github.run_number }} | |
| Download your child's photos from Parenta nursery portal with one click! | |
| ### 📥 Downloads | |
| - **Windows**: `ParentaScraper-Windows.zip` (requires Chrome installation) | |
| - **macOS**: `ParentaScraper-Mac.dmg` (requires Chrome installation) | |
| - **Linux**: `ParentaScraper-Linux.tar.gz` (requires Chrome/Chromium) | |
| ### 🚀 Quick Start | |
| 1. Download the file for your operating system | |
| 2. Install Google Chrome (if not already installed) | |
| 3. Extract/install and run the application | |
| 4. Enter your Parenta login credentials | |
| 5. Click "Test (Last 20)" or "Full Scrape" | |
| ### 📋 Requirements | |
| - Google Chrome browser | |
| - Valid Parenta nursery account | |
| - Internet connection | |
| ### 🆕 What's New | |
| - Cross-platform executable (Windows, macOS, Linux) | |
| - Automatic ChromeDriver management | |
| - Fast JavaScript-based data extraction | |
| - Parallel image downloading | |
| - Parent-friendly error messages | |
| ### 🛠️ Troubleshooting | |
| - **Chrome not found**: Install Chrome first from https://www.google.com/chrome/ | |
| - **Login issues**: Check your credentials at https://parentportal.parenta.com/ | |
| - **No photos found**: Try "Test (Last 20)" first to verify setup | |
| Built with ❤️ for parents who want their memories back! |