Skip to content

Add support for macOS with Intel chipsets #12

Add support for macOS with Intel chipsets

Add support for macOS with Intel chipsets #12

Workflow file for this run

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
permissions:
contents: write
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-macos-intel:
runs-on: macos-13 # Intel-based runner
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 Intel app
run: |
python build-scripts/build-macos-intel.py
- name: Upload macOS Intel artifact
uses: actions/upload-artifact@v4
with:
name: ParentaScraper-macOS-Intel
path: dist/ParentaScraper-Mac-Intel.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-Intel.dmg
asset_name: ParentaScraper-Mac-Intel.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-macos-intel, 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 Apple Silicon**: `ParentaScraper-Mac.dmg` (M1/M2 Macs, requires Chrome)
- **macOS Intel**: `ParentaScraper-Mac-Intel.dmg` (Intel Macs 2015-2020, requires Chrome)
- **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!