The Spoo.me Setup Action is a reusable GitHub Action that automatically configures the complete spoo.me URL shortener service within any GitHub Actions workflow. This action eliminates the complexity of manually setting up MongoDB, Redis, Python dependencies, and the spoo.me service itself.
View the action on GitHub Marketplace
Automatically installs and configures Python, MongoDB, and Redis
Clones spoo.me repository and starts service in background
Verifies all services are running before proceeding
Custom versions for Python, MongoDB, and Redis
Python version to install. Recommended: 3.11 or higher for best compatibility.
MongoDB version to use. Supports versions 6.0 and higher.
Redis version to use for caching and session management.
Directory name where the spoo.me repository will be cloned.
Timeout in seconds to wait for all services to be ready. Increase for slower environments.
URL where the spoo.me service is running (typically http://127.0.0.1:8000
)
MongoDB connection URI for direct database access
Redis connection URI for cache operations
Accessible via: steps.<spoo-setup-step-id>.outputs.<output-id>
Set up the workflow
Create a workflow file that sets up spoo.me and runs your integration tests.
The service will be available at the URL provided in the service-url
output.
Add comprehensive tests
Use the running service to test all your integration scenarios.
Test your application against multiple versions of dependencies:
The action automatically configures these environment variables:
Database Configuration
Application Configuration
The action performs these steps automatically:
Environment Setup
Installs Python, MongoDB, and Redis with specified versions
Service Verification
Verifies all databases are accessible and responsive
Repository Setup
Clones the spoo.me repository and installs dependencies using UV
Database Initialization
Creates necessary collections and indexes for optimal performance
Service Launch
Starts the spoo.me service in the background with health checks
Ready State
Outputs service URLs and confirms all systems are operational
Service startup issues
If the service fails to start, check the logs:
Increase the wait-timeout
value to 180 seconds or higher for slower environments.
Database connection problems
The action includes built-in retry logic, but if issues persist:
wait-timeout
value to 180 or higherMongoDB startup can be slow on some runners. We’ve optimized this with single-instance setup.
Common port conflicts
The action uses standard ports:
If you have conflicts, ensure no other services are using these ports in your workflow.
Latest stable v1.x release (recommended for production)
Latest stable v1.x release (recommended for production)
Pin to a specific version for reproducible builds
Latest development version - not recommended for production use
The action follows semantic versioning. Use @v1
for automatic updates within the major version, or pin to specific versions for maximum stability.