gotmpl 0.6.1

A Rust reimplementation of Go's text/template library
Documentation
name: Test

on:
  push:
    branches: ["main"]
  pull_request:
    branches: ["main"]
  workflow_call:

env:
  CARGO_TERM_COLOR: always

permissions:
  contents: read

jobs:
  test:
    strategy:
      matrix:
        os: [ubuntu-latest] #, windows-latest, macos-latest]
        features:
          - ""
          - "std"
          - "std,go-crosscheck"
          - "go-crosscheck"
          - "html"
          - "std,html"
          - "std,html,go-crosscheck"

    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v7
      - uses: ./.github/actions/setup-build-env
      - uses: actions/setup-go@v6
        if: contains(matrix.features, 'go-crosscheck')
        with:
          go-version: "1.26"
          cache: false

      - name: Build
        run: cargo build --verbose --no-default-features --features "${{ matrix.features }}"
      - name: Run tests
        run: cargo test --verbose --no-default-features --features "${{ matrix.features }}"

  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: ./.github/actions/setup-build-env
      - name: Check formatting
        run: cargo fmt --check --all
      - name: Run Cargo check
        run: cargo check --all --all-features --all-targets
      - name: Run Clippy linter
        run: cargo clippy --all --all-features --all-targets -- -D clippy::all

  publish-dry-run:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: ./.github/actions/setup-build-env
      - name: Dry-run cargo publish
        run: cargo publish --dry-run