express-handlebars
Version:
A Handlebars view engine for Express which doesn't suck.
123 lines (118 loc) • 3.14 kB
YAML
name: "Tests"
on:
pull_request:
push:
branches:
- master
permissions:
contents: read
env:
CI: true
jobs:
TestOS:
name: Test
strategy:
matrix:
os: [macos-latest, windows-latest]
node_version: ["lts/*"]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Code
uses: actions/checkout@v7
- name: Install Node
uses: actions/setup-node@v7
with:
node-version: ${{ matrix.node_version }}
check-latest: true
- name: Install dependencies
run: npm ci
- name: Run tests 👩🏾💻
run: npm run test
TestNode:
name: Test
strategy:
matrix:
os: [ubuntu-latest]
node_version: ["20", "lts/*", "*"]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Code
uses: actions/checkout@v7
- name: Install Node
uses: actions/setup-node@v7
with:
node-version: ${{ matrix.node_version }}
check-latest: true
- name: Install dependencies
run: npm ci
- name: Run tests 👩🏾💻
run: npm run test
Coverage:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v7
- name: Install Node
uses: actions/setup-node@v7
with:
node-version: "lts/*"
check-latest: true
- name: Install dependencies
run: npm ci
- name: Run tests 👩🏾💻
run: npm run test:cover
Lint:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v7
- name: Install Node
uses: actions/setup-node@v7
with:
node-version: "lts/*"
check-latest: true
- name: NPM install
run: npm ci
- name: Lint ✨
run: npm run lint
Build:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v7
- name: Install Node
uses: actions/setup-node@v7
with:
node-version: "lts/*"
check-latest: true
- name: NPM install
run: npm ci
- name: Build 🧱
run: npm run build
Release:
permissions:
contents: write # to be able to publish a GitHub release
issues: write # to be able to comment on released issues
pull-requests: write # to be able to comment on released pull requests
id-token: write # to enable use of OIDC for trusted publishing and npm provenance
needs: [TestOS, TestNode, Coverage, Lint, Build]
if: |
github.ref == 'refs/heads/master' &&
github.event.repository.fork == false
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v7
- name: Install Node
uses: actions/setup-node@v7
with:
node-version: "lts/*"
check-latest: true
- name: NPM install
run: npm ci
- name: NPM build
run: npm run build
- name: Release 🎉
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release