AdguardTeam / AdguardTeam/FiltersRegistry

Create a regression test script to compare build results against master

Open
#1,211 5 comments 0 reactions 1 assignee Claimed by @mu-hun View on GitHub
Dominant language
Adblock Filter List
Stars
358
Forks
75
Avg merge
23h 37m
Merged PRs (30d)
9

Description

A workflow for comparing compiled rule output between a branch and master (worktrees, parallel builds, diff report).

## Problem

In the #1186 PR's instruction, it's currently a copy-paste shell snippet, which means:

- No progress feedback while the two builds run as background child processes
- No way to configure build behavior without editing the snippet inline
- Easy to typo or skip a step when pasting manually
- Cleanup step is manual and easy to forget

> Please check [Typical workflow — comparing build results against master in DEVELOPMENT.md](https://github.com/AdguardTeam/FiltersRegistry/blob/2bc697b1a5bb708407a51741179510b890f44ea2/DEVELOPMENT.md#typical-workflow--comparing-build-results-against-master)

## Proposal

Turn the workflow into a standalone script exposed via one npm alias, e.g.:

```bash
yarn compare-build-output
```

## Note

Two behaviors from the manual doc are deliberately **not** carried over,
per discussion:

- The doc's cleanup step runs `git reset --hard` in the main repo as a blanket safety net. Baking an unconditional hard-reset into an automated script is a foot-gun (it would silently discard real uncommitted work if run from a dirty branch). The new script will not touch the main repo's tracked state at all — it only removes the worktrees and the `platforms_*_build/` dirs it created.
- No non-interactive/CI fallback for now (backlogged) — the script always prompts, matching local/manual usage. CI usage is a future concern.

## Requirements

- **Single entry point**: one yarn script, no manual multi-step copy-paste
- **Structured report**: keep the existing pass/fail comparison output format
- **Progress indication**: show a loading spinner per build (master/changed), since both run as parallel child processes and currently give no feedback until done
- Interactive options — prompt for:
- Branch selection: list local branches, defaulting to the currently checked-out branch.
- Build mode: `generate-cache` + `build:local` vs. plain build
- Whether to keep or clean up build artifacts (`platforms_*_build/` dirs, worktrees) after the run

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.