GitHub workflow to ensure tests are up to date (#1505)

Summary:
Pull Request resolved: https://github.com/facebook/yoga/pull/1505

This will ensure that all tests are not modified by hand and that gentest was run if needed (i.e. someone edited those files and forgot to update the tests). Not sure if this works right now, need to export to github and see what happens :)

Reviewed By: NickGerleman

Differential Revision: D52002920

fbshipit-source-id: 1ee033eda04eeba5d01885488bfe8078e7b2f386
This commit is contained in:
Joe Vilches
2023-12-14 11:48:22 -08:00
committed by Facebook GitHub Bot
parent 06c792a407
commit 43d09a3a94
2 changed files with 35 additions and 0 deletions

33
.github/workflows/validate-tests.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: Validate Tests
on:
pull_request:
push:
branches:
- main
- 'release-*'
workflow_dispatch:
jobs:
validate:
name: Validate
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup JS
uses: ./.github/actions/setup-js
- name: yarn gentest-validate
run: yarn gentest-validate
- name: yarn gentest
run: yarn gentest -h
- name: Check for modified tests
run: |
if [[ -n $(git status -s) ]]; then
git status -s
echo "yarn gentest modified these tests. Please run yarn gentest to resolve."
exit 1
fi

View File

@@ -31,6 +31,7 @@ function addSignatureToSourceCode(sourceCode: string): string {
const argv = minimist(process.argv.slice(2)); const argv = minimist(process.argv.slice(2));
const specificFixture = argv.f || argv.fixture; const specificFixture = argv.f || argv.fixture;
const suspend = argv.s || argv.suspend; const suspend = argv.s || argv.suspend;
const headless = argv.h || argv.headless;
const gentestDir = dirname(fileURLToPath(import.meta.url)); const gentestDir = dirname(fileURLToPath(import.meta.url));
const yogaDir = dirname(gentestDir); const yogaDir = dirname(gentestDir);
@@ -54,6 +55,7 @@ options.addArguments(
'--window-position=0,0', '--window-position=0,0',
'--hide-scrollbars', '--hide-scrollbars',
); );
headless && options.addArguments('--headless');
options.setLoggingPrefs({ options.setLoggingPrefs({
browser: 'ALL', browser: 'ALL',
performance: 'ALL', performance: 'ALL',