Setupยถ

WAFT (Warp Automation Framework for Testing)ยถ

A comprehensive automation framework for testing Cloudflareโ€™s WARP client across multiple operating systems and architectures.

๐Ÿš€ Overviewยถ

WAFT provides a unified framework for:

  • Multi-OS Testing: Ubuntu, Windows, RHEL/AlmaLinux, Debian

  • Cross-Architecture Support: Intel/AMD64 and ARM64

  • VM Management: Automated VM provisioning and configuration

  • Test Orchestration: Comprehensive test suite execution

  • CI/CD Integration: GitLab CI/CD pipeline templates

๐Ÿ“ฆ Componentsยถ

Core Framework (waft/src/waft/)ยถ

  • CLI Interface: Command-line tools for VM and test management

  • VM Management: Automated VM creation, configuration, and cleanup

  • Test Execution: Pytest-based test runner with WARP client integration

  • Configuration Management: Centralized configuration and secrets handling

Test Pipeline (waft/.gitlab/ci/)ยถ

  • CI/CD Templates: Ready-to-use GitLab CI/CD templates for external projects

  • Multi-OS Support: Comprehensive OS and architecture matrix testing

๐Ÿ“– Documentationยถ

Test Pipeline Documentationยถ

For comprehensive information about using WAFTโ€™s CI/CD pipeline system:

๐Ÿ‘‰ WAFT Test Pipeline Documentation

This documentation covers:

  • External Integration: How to use WAFT testing in your projects

  • OS Version Support: Complete matrix of supported operating systems

Core Framework Documentationยถ

๐Ÿ‘‰ WAFT Framework Documentation

  • CLI Reference: At-a-glance

  • CLI Commands: waft --help and waft <command> --help

  • Documentation: waft show --help

  • VM Management: waft vm --help

  • Configuration: waft config --help

๐Ÿš€ Quick Startยถ

For External Projectsยถ

Include WAFT testing in your project:

# .gitlab-ci.yml
include:
  - project: 'cloudflare/ztqa/waft'
    ref: 'main'
    file: '.gitlab/waft_test_pipeline/waft-test-template-vm.yml'

variables:
  # Test specific OS combinations
  RUN_UBUNTU_24_04_INTEL: "true"
  RUN_WINDOWS_11_INTEL: "true"
  PYTEST_MARKERS: "smoke"
  ALLURE_PROJECT_SLUG: "my-project-waft-tests"

For Local Executionยถ

Run WAFT tests from your system:

  1. ๐Ÿ’ป Prepare test systems

  2. โš™๏ธ Configure clients to be tested, either:

  3. ๐Ÿงช Run tests (โ€œTest Execution Guideโ€โ€ฆcoming soon)

๐Ÿ—๏ธ Architectureยถ

WAFT Framework
โ”œโ”€โ”€ Core Framework (waft/)
โ”‚   โ”œโ”€โ”€ VM Management
โ”‚   โ”œโ”€โ”€ Test Orchestration
โ”‚   โ”œโ”€โ”€ Configuration Management
โ”‚   โ””โ”€โ”€ CLI Interface
โ”œโ”€โ”€ Test Pipeline (.gitlab/waft_test_pipeline/)
    โ”œโ”€โ”€ CI/CD Templates
    โ”œโ”€โ”€ OS Job Definitions
    โ””โ”€โ”€ Reporting Integration

๐Ÿ“Š Supported Operating Systemsยถ

OS Family

Versions

Architectures

Matrix Size

Ubuntu

24.04, 22.04, 20.04 LTS

Intel, ARM64

6 combinations

Windows

11, 10, Server 2022, 2019

Intel, ARM64ยน

5 combinations

RHEL/AlmaLinux

AlmaLinux 8

Intel, ARM64

2 combinations

Debian

13, 12, 11 LTS

Intel, ARM64

6 combinations

ยน ARM64 support varies by OS version

๐Ÿ“ž Supportยถ


Ready to get started? Check out the following references for detailed setup instructions and examples:

Getting Startedยถ

Complete the default Python Environment Setup configuration.

Executeยถ

Finalize your local WAFT Framework Configuration and Setup.

Contributeยถ

Check out our best practices for contributing to the framework.

Run tests via CLI!