Skip to content

Merge pull request #1 from TheInfamousToTo/test #3

Merge pull request #1 from TheInfamousToTo/test

Merge pull request #1 from TheInfamousToTo/test #3

name: Create Release
on:
push:
branches: [ main ]
paths:
- 'version'
permissions:
contents: write
pull-requests: write
issues: write
jobs:
create-release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Check if version file changed
id: check
run: |
if git diff HEAD~1 HEAD --name-only | grep -q "^version$"; then
echo "changed=true" >> $GITHUB_OUTPUT
echo "Version file has changed"
else
echo "changed=false" >> $GITHUB_OUTPUT
echo "Version file has not changed"
fi
- name: Read version
id: version
if: steps.check.outputs.changed == 'true'
run: |
VERSION=$(cat version | tr -d '\n')
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "tag_version=v$VERSION" >> $GITHUB_OUTPUT
echo "Creating release for version: $VERSION"
- name: Generate changelog
id: changelog
if: steps.check.outputs.changed == 'true'
run: |
VERSION="${{ steps.version.outputs.version }}"
# Create a comprehensive changelog based on recent commits and version
case "$VERSION" in
"2.0.0")
CHANGELOG=$(cat << 'EOF'
## 🎉 Pi HAT Screen v2.0.0 - Major Entertainment Update!
**This is a MASSIVE update that transforms Pi HAT Screen from a simple info display into an entertaining animated system monitor!**
### 🎬 **15 New Animations** (The Star Feature!)
**Anime & Gaming:**
- 🐱 **Kawaii Faces & Neko Cat Ears** - Adorable anime-style characters with blinking and tail wagging
- 💗 **Anime Hearts** - Floating hearts with sparkle effects
- ⚔️ **One Piece Luffy Fighting** - Epic battle scenes with Gomu Gomu attacks and victory poses
- 🎵 **Super Sonico** - Musical anime character with headphones and idol effects
- 👁️ **Seductive Eyes & Bouncing Curves** - Adult-themed provocative animations
**Tech & Visual Effects:**
- 🌧️ **Matrix Digital Rain** - Classic falling characters effect
- ⭐ **Starfield** - Space travel through stars
- 🌊 **Wave Interference** - Cool physics-based wave patterns
- 📊 **Animated Progress Bars** - System stats with growing bars and sparkles
- 🕐 **Analog Clock** - Real-time clock with moving hands
**Fun & Interactive:**
- ⚽ **Bouncing Ball** - Physics-based ball with trails
- 🌊 **Sine Wave Patterns** - Smooth mathematical wave animations
- 🚀 **GitHub Creator Signature** - Special developer credit animation
- 📈 **System Visualization** - Dynamic system monitoring displays
### 📺 **TV News Ticker Scrolling**
- **Synchronized Scrolling:** Both text lines move together perfectly (no more drift!)
- **Professional Speed:** Adjustable scrolling speed like real TV news tickers
- **Smooth Animation:** 0.15s refresh rate for fluid movement
- **Perfect Sync:** Fixed scroll cycle prevents desynchronization issues
### 🛡️ **Advanced Burn-in Prevention**
- **3-minute intervals:** Animations automatically run every 3 minutes
- **Random selection:** 15+ animations rotate randomly to prevent static images
- **80% brightness:** Optimized brightness to extend OLED lifespan
- **Smart timing:** Animations only run when needed, preserving system resources
### ⚙️ **Technical Improvements**
- **Optimized Performance:** Smooth 60+ FPS animations with efficient resource usage
- **Enhanced Error Handling:** Robust animation error recovery
- **Modular Design:** Each animation is a separate function for easy maintenance
- **Signal Handling:** Graceful shutdown with display clearing
- **Logging Integration:** Comprehensive logging for troubleshooting
### 📦 **Project Cleanup & Organization**
- **Simplified Structure:** Removed complex burn-in prevention files
- **Clean Repository:** Deleted outdated documentation and scripts
- **Modern README:** Complete rewrite with emojis and clear instructions
- **Service File:** Included systemd service file for easy installation
- **Version Management:** Proper semantic versioning system
### 🔄 **Installation & Setup**
- **One-command install:** Simple bash commands for complete setup
- **Service management:** Easy start/stop/status commands included
- **Troubleshooting guide:** Common issues and solutions documented
- **Hardware compatibility:** Works with all Raspberry Pi models with I2C
### 🎯 **What's Changed Since v1.0.0**
| Feature | v1.0.0 | v2.0.0 |
|---------|---------|---------|
| **Animations** | ❌ None | ✅ 15+ Different animations |
| **Scrolling** | ❌ Static text | ✅ TV news ticker style |
| **Burn-in Prevention** | ❌ Basic | ✅ Advanced with timing |
| **Entertainment** | ❌ Just info | ✅ Anime, gaming, visual effects |
| **Performance** | ⚠️ Basic | ✅ Optimized & smooth |
| **Documentation** | ⚠️ Technical | ✅ User-friendly with emojis |
| **Setup** | ⚠️ Manual | ✅ Automated with service file |
### 🎮 **Perfect For:**
- **Anime fans** who want kawaii characters on their Pi
- **Gamers** who love visual effects and animations
- **Developers** who appreciate the Matrix rain and GitHub signature
- **Anyone** who wants their system monitor to be entertaining!
### 🚀 **Quick Upgrade Guide**
```bash
cd Pi-HAT-Screen
git pull origin main
sudo systemctl restart info-screen.service
```
### 🙏 **Special Thanks**
This massive update was created to make system monitoring FUN and entertaining while maintaining all the practical functionality you need!
---
**Full Changelog**: [v1.0.0...v2.0.0](https://github.com/TheInfamousToTo/Pi-HAT-Screen/compare/v1.0.0...v2.0.0)
EOF
)
;;
"1.1.0")
CHANGELOG=$(cat << 'EOF'
## 🚀 Raspberry Pi OLED System Info Display v1.1.0 - Enhanced Monitoring
This release introduces enhanced system monitoring capabilities and improved display functionality for Raspberry Pi devices.
### ✨ New Features
- **📊 Comprehensive System Monitoring**: Real-time display of IP Address, CPU Usage, CPU Temperature, RAM Usage, and Current Time
- **🔄 Auto-Start Service**: Configured as systemd service for automatic startup on boot
- **⚡ Optimized Refresh Rate**: Updates every 5 seconds for real-time monitoring
- **🖥️ OLED Display Support**: Full support for 128x32 I2C OLED displays (SSD1306)
- **🐍 Virtual Environment**: Proper Python dependency management with isolated environment
- **🏗️ I2C Communication**: Reliable communication with I2C-based OLED displays
### 🔧 Technical Improvements
- **⚡ Performance Optimization**: Efficient system resource monitoring
- **🛡️ Error Handling**: Robust error handling and recovery mechanisms
- **📱 Display Optimization**: Optimized text rendering for 128x32 OLED screens
- **🔧 System Integration**: Seamless integration with Raspberry Pi GPIO and I2C
- **📊 Resource Management**: Efficient CPU and memory usage monitoring
### 🔌 Hardware Compatibility
- **🥧 Raspberry Pi Support**: Compatible with all Raspberry Pi models with I2C support
- **📺 OLED Display**: Supports 128x32 I2C OLED displays (SSD1306 chipset)
- **🔌 Simple Wiring**: Easy connection with standard jumper wires
- **⚡ Low Power**: Minimal power consumption for continuous operation
### 🔄 Installation & Setup
- **📦 Easy Installation**: Simple setup process with automated service configuration
- **🔧 Systemd Service**: Automatic startup and management as system service
- **🐍 Python Environment**: Isolated virtual environment for clean dependency management
- **📖 Documentation**: Comprehensive setup and installation guide
### 🛠️ Usage
**Quick Start:**
1. Connect your 128x32 I2C OLED display to your Raspberry Pi
2. Install the required dependencies
3. Configure the systemd service
4. Enjoy real-time system information on your OLED display!
### 🙏 Acknowledgments
This release provides a complete solution for real-time system monitoring on Raspberry Pi devices with OLED displays.
---
**Full Changelog**: [View all changes](https://github.com/TheInfamousToTo/Pi-HAT-INFO/compare/v1.0.0...v1.1.0)
EOF
)
;;
*)
# Generic changelog for other versions
CHANGELOG="## Release $VERSION
Automatically generated release from version file update.
See commit history for detailed changes.
**Full Changelog**: [View all changes](https://github.com/TheInfamousToTo/Pi-HAT-INFO/commits/$VERSION)"
;;
esac
# Save changelog to output (GitHub Actions multiline string)
echo "changelog<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGELOG" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Check if tag exists
id: check-tag
if: steps.check.outputs.changed == 'true'
run: |
TAG_VERSION="${{ steps.version.outputs.tag_version }}"
if git tag -l | grep -q "^$TAG_VERSION$"; then
echo "exists=true" >> $GITHUB_OUTPUT
echo "Tag $TAG_VERSION already exists"
else
echo "exists=false" >> $GITHUB_OUTPUT
echo "Tag $TAG_VERSION does not exist"
fi
- name: Create GitHub Release
if: steps.check.outputs.changed == 'true' && steps.check-tag.outputs.exists == 'false'
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ steps.version.outputs.tag_version }}
name: "Pi HAT INFO ${{ steps.version.outputs.tag_version }}"
body: ${{ steps.changelog.outputs.changelog }}
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}