CircleCI Advanced Configuration - Pluralsight Course Repository
Replace the Docker Hub and Pluralsight links with your published image repo and course URL when available.
A RESTful API for managing Globomantics' robot fleet, built as a practical example for learning advanced CircleCI CI/CD patterns.
# Clone and install
git clone https://github.com/timothywarner-org/advanced-circleci.git
cd advanced-circleci
npm install
# Start development server
npm run dev
# Open the dashboard
open http://localhost:3000| URL | Description |
|---|---|
http://localhost:3000 |
Robot Fleet Dashboard |
http://localhost:3000/api-docs.html |
Interactive API Documentation |
http://localhost:3000/api/health |
Health Check Endpoint |
This repository accompanies the Pluralsight course CircleCI Advanced Configuration, designed for DevOps engineers and IT professionals who need to scale CI/CD practices across teams.
| Module | Topic | Key Concepts |
|---|---|---|
| 1 | Workflow Orchestration | Sequential/parallel jobs, fan-out/fan-in, filters, approvals |
| 2 | Configuration Reuse | Pipeline parameters, job parameters, commands, executors |
| 3 | Orbs & Integrations | Node.js orb, Slack notifications, Azure deployment |
The Globomantics Robot Fleet API manages a fleet of industrial robots with these features:
- Dashboard UI - Visual overview of all robots with status indicators
- REST API - Full CRUD operations for robot management
- Health Checks - Kubernetes-ready liveness/readiness probes
- Metrics - Fleet-wide operational statistics
# Health check
curl http://localhost:3000/api/health
# List all robots
curl http://localhost:3000/api/robots
# Filter by status
curl http://localhost:3000/api/robots?status=active
# Create a robot
curl -X POST http://localhost:3000/api/robots \
-H "Content-Type: application/json" \
-d '{"name": "Atlas Prime", "type": "assembly", "location": "factory-floor-a"}'
# Update robot
curl -X PUT http://localhost:3000/api/robots/rb-001 \
-H "Content-Type: application/json" \
-d '{"status": "maintenance"}'npm run dev # Start with hot reload
npm start # Production mode
npm test # Run all tests
npm run lint # Check code stylemake help # Show all commands
make check # Lint + test
make docker-build-local # Build Docker image
make docker-run-local # Run containerSee LOCAL-DEVELOPMENT.md for the complete development guide.
advanced-circleci/
├── src/ # Node.js Express API
│ ├── index.js # App entry point
│ ├── routes/ # API route handlers
│ ├── services/ # Business logic
│ └── middleware/ # Express middleware
├── public/ # Frontend dashboard
│ ├── index.html # Dashboard UI
│ ├── api-docs.html # Interactive API docs
│ ├── css/ # Globomantics styling
│ └── js/ # Dashboard JavaScript
├── tests/ # Test suites
│ ├── unit/ # Unit tests
│ ├── integration/ # API tests
│ └── e2e/ # End-to-end tests
├── .circleci/
│ ├── config.yml # Production config
│ └── configs/ # Progressive demo configs
├── infra/ # Azure Bicep templates
│ ├── main.bicep # Main template
│ ├── modules/ # Infrastructure modules
│ └── environments/ # Environment parameters
├── demos/ # Demo scripts per module
├── docs/ # Documentation
├── mcp-server/ # Schematica MCP Server
│ ├── src/ # Server source code
│ ├── package.json # MCP dependencies
│ └── README.md # MCP server documentation
├── Dockerfile # Container build
└── Makefile # Development commands
The .circleci/configs/ directory contains configurations that build on each other:
01-sequential-baseline.yml- Basic sequential workflow02-parallel-fanout.yml- Fan-out/fan-in pattern03-branch-tag-filters.yml- Conditional execution04-approval-scheduled.yml- Manual gates and schedules
Deploy to Azure Container Apps:
cd infra
./deploy.sh dev # Deploy to dev
./deploy.sh staging # Deploy to staging
./deploy.sh production # Deploy to productionSee AZURE-DEPLOYMENT.md for the complete deployment guide.
The repository includes Schematica, an MCP (Model Context Protocol) server that enables AI assistants like Claude to manage the robot fleet through natural language.
# Terminal 1: Start the Robot API
npm run dev
# Terminal 2: Start the MCP server
cd mcp-server
npm install
npm start| Tool | Description |
|---|---|
list_robots |
List all robots with optional status/location filters |
get_robot |
Get details of a specific robot by ID |
create_robot |
Create a new robot in the fleet |
update_robot |
Update robot properties (name, status, location, battery) |
delete_robot |
Decommission a robot from the fleet |
schedule_maintenance |
Schedule maintenance for a robot |
Add to your Claude configuration:
{
"mcpServers": {
"schematica": {
"url": "http://localhost:3001/mcp"
}
}
}See mcp-server/README.md for the complete MCP server documentation.
| Resource | Purpose |
|---|---|
| Container Registry | Docker image storage |
| Container Apps Environment | Hosting environment |
| Container App | The running API |
| Log Analytics | Logging and monitoring |
| Document | Description |
|---|---|
| LOCAL-DEVELOPMENT.md | Local setup and development guide |
| AZURE-DEPLOYMENT.md | Azure deployment and CI/CD setup |
| COURSE_OUTLINE.md | Course structure and learning objectives |
| LEARNING-OBJECTIVES.md | Detailed learning objectives |
| mcp-server/README.md | Schematica MCP Server documentation |
| Tool | Version | Required For |
|---|---|---|
| Node.js | 18+ | Running the app |
| Docker | 20+ | Container builds |
| Azure CLI | 2.50+ | Azure deployment |
| CircleCI Account | Free tier | CI/CD pipeline |
Install recommended extensions:
code .
# Accept "Install Recommended Extensions" promptKey extensions:
- CircleCI (
circleci.circleci) - YAML (
redhat.vscode-yaml) - Azure Bicep (
ms-azuretools.vscode-bicep) - ESLint (
dbaeumer.vscode-eslint)
- Author: Tim Warner
- Email: mailto:[email protected]
- Website: https://TechTrainerTim.com
MIT License - See LICENSE for details.
Course: CircleCI Advanced Configuration Platform: Pluralsight Email: mailto:[email protected] Website: https://TechTrainerTim.com