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 --helpandwaft <command> --helpDocumentation:
waft show --helpVM Management:
waft vm --helpConfiguration:
waft config --help
๐ Quick Startยถ
For External Projectsยถ
Include WAFT testing in your project:
# .gitlab-ci.yml
stages:
- test_stage
include:
- component: $CI_SERVER_FQDN/cloudflare/ztqa/waft/test-with-waft@latest
inputs:
runs-on:
- ubuntu_24_04_multiarch_arm
- ubuntu_22_04_multiarch_intel
test-path: src/
stage: test_stage
WAFT Testing CI Component Inputsยถ
Input |
Description |
Default |
Type |
Required |
|---|---|---|---|---|
|
Pytest markers to run |
|
string |
No |
|
Pytest args to run |
|
string |
No |
|
List of VMs to run on |
- |
list |
Yes |
|
Path to tests to run |
- |
string |
Yes |
|
Release track of WARP client to use for testing ( |
|
string |
No |
|
Stage to run tests in |
- |
string |
Yes |
|
Allow tests to fail |
|
boolean |
No |
|
Test timeout |
|
string |
No |
|
Name of job where tests will be run |
|
string |
No |
|
Jobs required to be run before component should be run |
null |
array |
No |
Available VM Optionsยถ
The following options are available for the runs-on input:
Linuxยถ
almalinux8_multiarch_intel,almalinux8_multiarch_armdebian_bullseye_multiarch_intel,debian_bullseye_multiarch_armdebian_bookworm_multiarch_intel,debian_bookworm_multiarch_armfedora34_multiarch_intel,fedora34_multiarch_armfedora35_multiarch_intel,fedora35_multiarch_armubuntu_20_04_multiarch_intel,ubuntu_20_04_multiarch_armubuntu_22_04_multiarch_intel,ubuntu_22_04_multiarch_armubuntu_24_04_multiarch_intel,ubuntu_24_04_multiarch_arm
Windowsยถ
windows_11_intel,windows_11_armwindows_2022_intel
For Local Executionยถ
Run WAFT tests from your system:
๐ป Prepare test systems
โ๏ธ Configure clients to be tested, either:
๐งช Run tests - See VS Code Test Configuration Guide
๐๏ธ 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ยถ
Pipeline Issues: See Test Pipeline Documentation
Framework Issues: Submit a ticket to the ZTQA JIRA project
General Questions: Contact the ZTQA Test & Automation team
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!