This guide covers the setup for three new automated workflows:
- Robot Framework Tests - Automated test reports with GitHub Pages
- Mobile Builds - Android APK & iOS IPA builds with automatic releases
- Jekyll Documentation - Documentation site hosted on GitHub Pages
- GitHub repository with Actions enabled
- Repository permissions: Settings β Actions β General β Workflow permissions β "Read and write permissions"
- EXPO_TOKEN secret configured
File: .github/workflows/robot-framework-tests.yml
- Runs Robot Framework tests on PR or manual trigger
- Publishes interactive HTML reports to GitHub Pages
- Posts test summary as PR comment
- Uploads test artifacts (HTML + XML reports)
- β Live test reports accessible via URL
- β PR comments with pass/fail statistics
- β Downloadable test artifacts
- β Backend service startup automation
- β Service log capture on failure
- Automatic: PRs that modify
robot_tests/orushadow/backend/ - Manual: Actions tab β "Robot Framework Tests" β "Run workflow"
No secrets required! Just enable GitHub Pages:
- Go to Settings β Pages
- Source: GitHub Actions
- Save
On PR:
## π Robot Framework Test Results
**Status**: β
All tests passed!
| Metric | Count |
|--------|-------|
| β
Passed | 15 |
| β Failed | 0 |
| π Total | 15 |
### π View Reports
- [π Test Report](https://ushadow-io.github.io/Ushadow/report.html)
- [π Detailed Log](https://ushadow-io.github.io/Ushadow/log.html)
File: .github/workflows/mobile-builds.yml
EAS Config: ushadow/mobile/eas.json
- Builds Android APK and iOS IPA on push to main or manual trigger
- Creates GitHub Releases with downloadable binaries
- Automatic versioning with timestamps
- Supports building platforms independently
- β Android APK (ready to install)
- β iOS IPA (simulator builds)
- β Automatic GitHub Releases
- β Manual trigger with platform selection
- β Timestamped version tags
- Automatic: Push to
mainbranch whenushadow/mobile/changes - Manual: Actions tab β "Build Mobile Apps" β Select platforms
- Go to expo.dev and sign in
- Navigate to Access Tokens
- Create new token β Copy it
- Settings β Secrets and variables β Actions
- Click New repository secret
- Name:
EXPO_TOKEN - Value: Paste your token
- Save
# Test locally first
cd ushadow/mobile
npm install
eas init --force --non-interactive
eas build --platform android --profile local --localCreates GitHub Release with:
ushadow-mobile-android.apk(Android)ushadow-mobile-ios.ipa(iOS simulator)- Installation instructions
- Build metadata
Release Tag Format: mobile-v1.0.0-20260122-143052
File: .github/workflows/jekyll-docs.yml
- Converts your
docs/folder into a beautiful documentation website - Automatically creates Jekyll config if missing
- Deploys to GitHub Pages on every push to main
- Supports Markdown with syntax highlighting
- β Automatic Jekyll setup
- β Clean documentation theme (Minima)
- β Markdown support with code highlighting
- β SEO optimization
- β Sitemap generation
- Automatic: Push to
mainbranch whendocs/changes - Manual: Actions tab β "Deploy Jekyll Documentation" β "Run workflow"
-
Enable GitHub Pages:
- Settings β Pages
- Source: GitHub Actions
- Save
-
Optional - Customize Jekyll:
cd docs # Create custom Gemfile (optional) cat > Gemfile << 'EOF' source "https://rubygems.org" gem "jekyll", "~> 4.3" gem "minima", "~> 2.5" EOF # Create custom _config.yml (optional) cat > _config.yml << 'EOF' title: Your Custom Title description: Your description theme: minima EOF
-
Add index page:
cd docs cat > index.md << 'EOF' --- layout: home title: Home --- # Welcome to Ushadow Documentation Your documentation content here... EOF
Documentation site available at:
https://ushadow-io.github.io/Ushadow/
# 1. Commit the new workflows
git add .github/workflows/*.yml ushadow/mobile/eas.json
git commit -m "feat: add CI/CD workflows for tests, mobile, and docs"
git push
# 2. Configure secrets
# Go to Settings β Secrets and variables β Actions
# Add: EXPO_TOKEN
# 3. Enable GitHub Pages
# Settings β Pages β Source: GitHub Actions
# 4. Test each workflow manually:
# Actions tab β Select workflow β Run workflow- Live Reports: Check PR comment for URLs
- Artifacts: Actions run β Scroll to "Artifacts" β Download ZIP
- Logs: Actions run β "Run Robot Framework tests" step
- Releases: Repository β Releases tab
- Download: Click on APK/IPA file
- Logs: Actions run β Build steps
- Live Site: Settings β Pages β "Visit site" button
- Build Status: Actions tab β "Deploy Jekyll Documentation"
# Check if paths are correct
git diff --name-only origin/main | grep -E "robot_tests|ushadow/backend"
# Manually trigger
# Actions β Robot Framework Tests β Run workflow# Common issues:
# 1. EXPO_TOKEN not set or expired
# 2. EAS not initialized (run: eas init)
# 3. Node modules outdated (run: npm ci)
# Debug locally:
cd ushadow/mobile
npm ci
eas build --platform android --profile local --local# Common issues:
# 1. Invalid Markdown syntax
# 2. Missing front matter (add --- at top of files)
# 3. Jekyll config errors
# Test locally:
cd docs
bundle install
bundle exec jekyll serve
# Visit http://localhost:4000Check workflow runs:
Repository β Actions tab
View workflow details:
Actions β Select workflow β Click on a run
- Add Claude Code Integration - Automated code reviews on PRs
- Add Docker Build Workflow - Build and push container images
- Add Deployment Workflows - Auto-deploy to staging/production
See the workflows/ folder for additional workflow templates from your other project!