Claude Skill MartBrowse skillsQuick linesLearn by videoTerminal guideWhat is a Skill?
← Back to list

TestDriver AWS Self-Hosted Setup

A runbook skill for deploying TestDriver test infrastructure to AWS via CloudFormation, with EC2 instances spawned and terminated automatically per Vitest test.

Dev & CodingAdvanced★ 243⑂ 37AI score 7/10Last updated: Sep 21, 2026

What it does

  • Walks you through deploying a CloudFormation stack that creates a dedicated VPC, security group, IAM roles, and an EC2 launch template — via one-click console link or aws cloudformation deploy.
  • Shows the exact vitest.config.mjs change (testdriverai/vitest/setup-aws) so each test spins up a fresh EC2 instance and terminates it when finished.
  • Documents every required environment variable (TD_OS, AWS_REGION, AWS_LAUNCH_TEMPLATE_ID, AMI_ID) plus a GitHub Secrets table and a complete GitHub Actions workflow.
  • Covers Golden Image AMI customization, security hardening (OIDC federation, CIDR restriction, least-privilege IAM), and a troubleshooting section for unresponsive instances and connection timeouts.

Who it's for

  • QA engineers who need real Windows desktop environments for E2E/UI automation.
  • Teams that must run test runners inside their own AWS account instead of TestDriver's cloud for compliance or cost reasons.
  • DevOps engineers wiring a Vitest suite into GitHub Actions CI.

Prerequisites: an AWS account with CloudFormation permissions, a configured AWS CLI, access to the TestDriver AMI (requires contacting the vendor), and a TestDriver API key.

Usage examples

  1. First-time infrastructure — "Deploy the TestDriver CloudFormation stack in us-east-2 and give me the LaunchTemplateId" returns the deploy command and the describe-stacks query.
  2. CI integration — "Create a workflow that runs Windows self-hosted tests on every PR" produces a ready .github/workflows/test.yml plus the six secrets to configure.
  3. Reusing a live instance — pass TD_IP=1.2.3.4 to skip auto-spawning, or run setup/aws/spawn-runner.sh to manage instance lifecycle manually.

· · · Install guide · · ·

Try it now, no install

Paste this into Claude to use the skill without installing anything.

Read the instructions in this file and follow them to help me:
https://raw.githubusercontent.com/testdriverai/testdriverai/HEAD/ai/skills/testdriver-aws-setup/SKILL.md

What I want: (describe your task here)

If Claude can't open the link, open it yourself and paste the contents instead.

↓ If it works for you, download the ZIP below and install it. Then it runs on its own — no pasting each time.

Install in the Claude app (no terminal)
  1. Download the ZIP with the button below.
  2. In Claude, open Settings → Capabilities and turn on 'Code execution and file creation'. (one time)
  3. Go to Customize → Skills → + → 'Upload a skill' and upload the ZIP.
↓ Download ZIP
Install in Claude Code

Let Claude do it — paste this into Claude Code

Install the skill I found on Claude Skill Mart.
Copy the ai/skills/testdriver-aws-setup folder from the GitHub repo testdriverai/testdriverai into my ~/.claude/skills/testdriver-aws-setup/.
When it's done, tell me in one line what this skill can do.

Install with a command instead

git clone https://github.com/testdriverai/testdriverai.git /tmp/testdriverai && mkdir -p ~/.claude/skills && cp -r /tmp/testdriverai/ai/skills/testdriver-aws-setup ~/.claude/skills/

⚠ This is a third-party skill. Check the source repository before installing.

  1. Open a terminal in your working directory.
  2. Clone the repository: git clone https://github.com/testdriverai/testdriverai.git
  3. Create the skills folder: mkdir -p ~/.claude/skills
  4. Copy the skill: cp -r testdriverai/ai/skills/testdriver-aws-setup ~/.claude/skills/
  5. Restart Claude Code and run /skills (or ask "set up TestDriver self-hosted on AWS") to confirm it loaded.
  6. Before using it: install the AWS CLI and run aws configure, request TestDriver AMI access for your region, and grab an API key from console.testdriver.ai.
  7. (Important) If you build a custom AMI, rotate the documented default RDP password immediately with RotateLocalPasswords.ps1, and replace AllowedIngressCidr=0.0.0.0/0 with your own IP ranges.