Skip to content

Conversation

c-gerke
Copy link
Contributor

@c-gerke c-gerke commented Jul 15, 2025

This pull request introduces two new GitHub Actions workflows to enhance automated testing for the project: one for performance and load testing, and another for PR functionality testing. These workflows aim to ensure robust performance, compatibility, and functionality across different scenarios and architectures.

Performance and Load Testing Workflow (.github/workflows/performance-tests.yml)

  • New performance testing workflow: Adds a workflow triggered manually via workflow_dispatch to conduct performance and load tests with configurable parameters such as test target, custom image tags, and load intensity.
  • Comprehensive performance tests: Includes DNS resolution tests, HTTP response time tests, cache performance tests (cache miss vs. cache hit), and load tests using Apache Bench and wrk.
  • Resource monitoring: Tracks memory and resource usage of containers and generates a detailed performance report with test results.
  • Artifact archiving: Archives test results for further analysis and debugging.

PR Functionality Testing Workflow (.github/workflows/test-pr-functionality.yml)

  • Functional testing for PRs: Adds a workflow triggered on pull requests to test the functionality of PR-specific Docker images, including DNS resolution and cache behavior for gaming CDNs.
  • Multi-architecture support: Verifies compatibility of Docker images for both AMD64 and ARM64 architectures using QEMU and Docker Buildx.
  • Health checks and logging: Ensures containers are healthy, logs critical errors, and validates DNS and cache configurations.
  • Test scenarios: Tests specific gaming platforms (e.g., Steam, Epic Games, Origin, Battle.net) to simulate real-world usage.
  • Test summary: Consolidates results from functional and compatibility tests into a detailed summary for quick evaluation.

* Update base image to Ubuntu 22.04
* Enhance caching between build steps
* Ensure correct Nginx image is used
* Fix authentication issues on PRs
* Re-enable cron schedule with updated 'sed' commands
@c-gerke c-gerke requested a review from Copilot July 15, 2025 16:44
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a full testing infrastructure to ensure only valid LanCache images are tagged as latest.

  • Introduces TESTING.md with a guide for PR, scheduled, and performance tests
  • Adds a scheduled build workflow to pre-validate releases (test-scheduled-functionality.yml)
  • Implements PR functionality and performance test workflows (test-pr-functionality.yml, performance-tests.yml)

Reviewed Changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.

File Description
TESTING.md Adds detailed guide for PR, scheduled, and perf tests
.github/workflows/test-scheduled-functionality.yml Defines 'Scheduled Build Functionality Tests' workflow
.github/workflows/test-pr-functionality.yml Adds 'PR Functionality Tests' workflow
.github/workflows/performance-tests.yml Implements 'Performance and Load Tests' workflow
Comments suppressed due to low confidence (3)

.github/workflows/performance-tests.yml:215

  • The Cache Performance Test step is mis-indented under the HTTP step, causing it to be treated as part of the shell script rather than a separate workflow step. Align the - name and its run: block with the other steps under steps: to correct the YAML syntax.
             - name: Cache Performance Test  

.github/workflows/test-pr-functionality.yml:151

  • [nitpick] The test-content.txt file is created but never used in subsequent steps. Consider removing this file or mounting it into the container if it's intended for the direct-download scenario.
            echo "This is test content for cache validation" > test-content.txt

.github/workflows/test-pr-functionality.yml:128

  • The test_url variable is set for CDN scenarios but never used in the cache functionality test. Either reference it in your HTTP requests or remove the unused variable.
              test_url="http://steamcontent.com/depot/test.bin"

c-gerke added 6 commits July 15, 2025 13:54
* Replace wait-on-check-action with action-wait-for-check for better PR build handling
* Enhance DNS testing by switching from nslookup to dig for accuracy
* Simplify test scenarios and improve cache functionality checks
* Update ARM64 testing setup and streamline container health checks
* Revise test summary output for clarity and detail
* Replace action-wait-for-check with actions/checkout for improved build handling
* Update IP addresses in test environment for better network configuration
* Modify health checks and DNS testing to use specific IPs
* Streamline ARM64 testing setup and ensure compatibility with updated configurations
* Improve error handling and logging for container health checks
…ainer issues

* Enhance TESTING.md with detailed debug steps and solutions for DNS resolution failures and container startup issues
* Modify GitHub Actions workflow to improve health checks and logging for DNS container
* Update health check commands and increase startup wait time for better reliability
…lution

* Clarify root cause of DNS resolution failures in TESTING.md
* Enhance debug steps for DNS container issues, including specific commands and configurations
* Modify GitHub Actions workflow to check correct cache domains and improve logging for DNS tests
* Ensure proper directory paths and configurations are referenced in health checks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant