Skip to content

Advanced CircleCI configuration course repo: Node/Express Robot API, Docker + Bicep Azure infra, demos and scripts for teaching CI/CD patterns.

License

Notifications You must be signed in to change notification settings

timothywarner-org/advanced-circleci

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Globomantics Robot Fleet API

CircleCI Advanced Configuration - Pluralsight Course Repository

CircleCI Docker Hub Pluralsight GitHub Actions Node.js License: MIT

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.

Quick Start

# 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

What You'll See

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

Course Overview

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.

What You'll Learn

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 Application

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

API Endpoints

# 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"}'

Development

Using npm Scripts

npm run dev          # Start with hot reload
npm start            # Production mode
npm test             # Run all tests
npm run lint         # Check code style

Using Makefile

make help            # Show all commands
make check           # Lint + test
make docker-build-local   # Build Docker image
make docker-run-local     # Run container

See LOCAL-DEVELOPMENT.md for the complete development guide.

Project Structure

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

CircleCI Configuration Progression

The .circleci/configs/ directory contains configurations that build on each other:

Module 1: Workflow Orchestration

  1. 01-sequential-baseline.yml - Basic sequential workflow
  2. 02-parallel-fanout.yml - Fan-out/fan-in pattern
  3. 03-branch-tag-filters.yml - Conditional execution
  4. 04-approval-scheduled.yml - Manual gates and schedules

Module 2: Configuration Reuse

Azure Deployment

Deploy to Azure Container Apps:

cd infra
./deploy.sh dev        # Deploy to dev
./deploy.sh staging    # Deploy to staging
./deploy.sh production # Deploy to production

See AZURE-DEPLOYMENT.md for the complete deployment guide.

Schematica MCP Server

The repository includes Schematica, an MCP (Model Context Protocol) server that enables AI assistants like Claude to manage the robot fleet through natural language.

Quick Start

# Terminal 1: Start the Robot API
npm run dev

# Terminal 2: Start the MCP server
cd mcp-server
npm install
npm start

Available Tools

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

Configure Claude

Add to your Claude configuration:

{
  "mcpServers": {
    "schematica": {
      "url": "http://localhost:3001/mcp"
    }
  }
}

See mcp-server/README.md for the complete MCP server documentation.

Azure Resources Created

Resource Purpose
Container Registry Docker image storage
Container Apps Environment Hosting environment
Container App The running API
Log Analytics Logging and monitoring

Documentation

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

Prerequisites

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

VS Code Setup

Install recommended extensions:

code .
# Accept "Install Recommended Extensions" prompt

Key extensions:

  • CircleCI (circleci.circleci)
  • YAML (redhat.vscode-yaml)
  • Azure Bicep (ms-azuretools.vscode-bicep)
  • ESLint (dbaeumer.vscode-eslint)

Resources

Maintainer

License

MIT License - See LICENSE for details.


Course: CircleCI Advanced Configuration Platform: Pluralsight Email: mailto:[email protected] Website: https://TechTrainerTim.com

About

Advanced CircleCI configuration course repo: Node/Express Robot API, Docker + Bicep Azure infra, demos and scripts for teaching CI/CD patterns.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •