Files
tree-sitter-shellspec/.github/workflows/test.yml

77 lines
1.6 KiB
YAML

---
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: CI
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
merge_group:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: read-all
jobs:
checkout:
name: Checkout Repository
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout Code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
fetch-depth: 0
test:
name: 🧪 Test Suite
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
node-version: [22, 24]
fail-fast: false
steps:
- name: 🏗️ Setup Development Environment
uses: ./.github/actions/setup-dev
with:
node-version: ${{ matrix.node-version }}
- name: 🧪 Test Grammar
uses: ./.github/actions/test-grammar
lint:
name: 🧹 Code Quality
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- name: 🏗️ Setup Node.js Environment
uses: ./.github/actions/setup-node
- name: 🧹 Run Linter
uses: ivuorinen/actions/pr-lint@22e6add79fabcca4bf5761452a51e4fa0207e155 # 25.9.8
coverage:
name: 📊 Test Coverage
runs-on: ubuntu-latest
timeout-minutes: 15
needs: test
steps:
- name: 🏗️ Setup Development Environment
uses: ./.github/actions/setup-dev
with:
node-version: 24
- name: 📊 Test Coverage Analysis
uses: ./.github/actions/test-coverage
with:
minimum-tests: 55