mirror of https://github.com/tc39/test262.git
93 lines
2.5 KiB
YAML
93 lines
2.5 KiB
YAML
name: Checks
|
|
|
|
on:
|
|
- push
|
|
- pull_request
|
|
|
|
jobs:
|
|
lint:
|
|
name: Lint tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.x'
|
|
cache: pip
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install -r tools/lint/requirements.txt
|
|
|
|
- name: Lint all tests
|
|
if: github.event_name == 'push'
|
|
run: ./tools/lint/lint.py test/
|
|
|
|
- name: Identify new or changed tests
|
|
id: changed_tests
|
|
if: github.event_name == 'pull_request'
|
|
uses: tj-actions/changed-files@v45
|
|
with:
|
|
files: test/
|
|
|
|
- name: Lint new or changed tests
|
|
if: |
|
|
github.event_name == 'pull_request' &&
|
|
steps.changed_tests.outputs.any_changed == 'true'
|
|
env:
|
|
CHANGED: ${{ steps.changed_tests.outputs.all_changed_files }}
|
|
run: |
|
|
echo New or modified test files:
|
|
for file in $CHANGED; do
|
|
echo $file
|
|
done
|
|
./tools/lint/lint.py $CHANGED 2> >(tee errors.out >&2)
|
|
|
|
- name: Create annotations in the PR
|
|
if: failure() && github.event_name == 'pull_request'
|
|
run: |
|
|
awk -F': ' <errors.out \
|
|
"{ sub(\"$(pwd)/\", \"\"); printf \"::error file=%s,line=1::%s\n\", \$1, \$2 }"
|
|
|
|
|
|
build:
|
|
name: Build generated tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.x'
|
|
cache: pip
|
|
|
|
- name: Install dependencies for generation tool
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install -r tools/generation/requirements.txt
|
|
|
|
- name: Install dependencies for regexp-generator tool
|
|
run: |
|
|
cd tools/regexp-generator
|
|
npm install
|
|
|
|
- name: Build tests
|
|
run: |
|
|
./make.py clean >/dev/null
|
|
./make.py
|
|
|
|
- name: Verify changes
|
|
uses: tj-actions/verify-changed-files@v20
|
|
with:
|
|
fail-if-changed: true
|
|
fail-message: |
|
|
New changes were found after re-generating the tests.
|
|
Please read the documentation on procedurally generated tests
|
|
https://github.com/tc39/test262/blob/HEAD/CONTRIBUTING.md#procedurally-generated-tests
|