ci: add workflows & test suite

This commit is contained in:
ObserverOfTime 2024-03-31 23:56:24 +03:00 committed by Amaan Qureshi
parent af011e6e1a
commit 09d7e5e33d
8 changed files with 118 additions and 16 deletions

8
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,8 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
commit-message:
prefix: "ci"

57
.github/workflows/ci.yml vendored Normal file
View file

@ -0,0 +1,57 @@
name: CI
on:
push:
branches: [master]
paths:
- grammar.js
- src/**
- test/**
- bindings/**
- binding.gyp
pull_request:
paths:
- grammar.js
- src/**
- test/**
- bindings/**
- binding.gyp
concurrency:
group: ${{github.workflow}}-${{github.ref}}
cancel-in-progress: true
jobs:
test:
name: Test parsers
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-14]
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true
- name: Set up tree-sitter
uses: tree-sitter/setup-action/cli@v1
- name: Run tests
uses: tree-sitter/parser-test-action@v2
with:
test-rust: ${{runner.os == 'Linux'}}
- name: Set up test suite
shell: bash
run: |-
printf '%s\n' examples/*.yaml > "$RUNNER_TEMP/test-files"
while read -r file; do
printf '%s\n' "$file" >> "$RUNNER_TEMP/test-files"
if [[ -f ${file/in.yaml/error} ]]; then
printf '%s\n' "$file" >> "$RUNNER_TEMP/invalid-files"
fi
done < <(find -L examples/yaml-test-suite/name -name in.yaml)
- name: Parse test suite
uses: tree-sitter/parse-action@v4
with:
files-list: ${{runner.temp}}/test-files
invalid-files-list: ${{runner.temp}}/invalid-files

26
.github/workflows/fuzz.yml vendored Normal file
View file

@ -0,0 +1,26 @@
name: Fuzz
on:
push:
branches: [master]
paths:
- src/schema.core.c
- src/scanner.c
pull_request:
paths:
- src/schema.core.c
- src/scanner.c
concurrency:
group: ${{github.workflow}}-${{github.ref}}
cancel-in-progress: true
jobs:
fuzz:
name: Fuzz scanner
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run fuzzer
uses: tree-sitter/fuzz-action@v4

21
.github/workflows/publish.yml vendored Normal file
View file

@ -0,0 +1,21 @@
name: Publish package
on:
push:
tags: ["*"]
jobs:
npm:
uses: tree-sitter/workflows/.github/workflows/package-npm.yml@main
with:
package-name: "@tree-sitter-grammars/tree-sitter-yaml"
secrets:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
crates:
uses: tree-sitter/workflows/.github/workflows/package-crates.yml@main
secrets:
CARGO_REGISTRY_TOKEN: ${{secrets.CARGO_TOKEN}}
pypi:
uses: tree-sitter/workflows/.github/workflows/package-pypi.yml@main
secrets:
PYPI_API_TOKEN: ${{secrets.PYPI_TOKEN}}

3
.gitignore vendored
View file

@ -29,9 +29,6 @@ dist/
*.dll *.dll
*.pc *.pc
# Example dirs
/examples/*/
# Grammar volatiles # Grammar volatiles
dsl.d.ts dsl.d.ts
*.wasm *.wasm

5
.gitmodules vendored Normal file
View file

@ -0,0 +1,5 @@
[submodule "yaml-test-suite"]
path = examples/yaml-test-suite
url = https://github.com/yaml/yaml-test-suite
branch = data
shallow = true

View file

@ -1,13 +0,0 @@
language: rust
rust:
- stable
script:
- if [ ! -d "./tree-sitter/target/release" ]; then bash ./scripts/setup-tree-sitter.sh; fi
- ./tree-sitter/target/release/tree-sitter test
cache:
cargo: true
directories:
- ./tree-sitter

@ -0,0 +1 @@
Subproject commit 6ad3d2c62885d82fc349026c136ef560838fdf3d