libcorn 0.10.1

Parsing engine for Corn, a simple and pain-free configuration language.
Documentation
name: Release

on:
  workflow_dispatch:
  push:
    tags:
      - "*"

env:
  CARGO_TERM_COLOR: always

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Install build deps
        run: sudo apt install jq

      - name: Setup rust
        run: rustup toolchain install stable

      - name: Install wasm-pack
        run: curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh

      - uses: actions/setup-node@v4
        with:
          node-version: "20.x"
          registry-url: "https://registry.npmjs.org"

      - name: Build WASM package
        run: scripts/build-wasm.sh

      - name: Update CHANGELOG
        id: changelog
        uses: Requarks/changelog-action@v1
        with:
          token: ${{ github.token }}
          tag: ${{ github.ref_name }}
          excludeTypes: "build,chore,style"

      - name: Create release
        uses: ncipollo/release-action@v1
        with:
          allowUpdates: true
          draft: false
          name: ${{ github.ref_name }}
          body: ${{ steps.changelog.outputs.changes }}
          token: ${{ github.token }}

      - name: Commit CHANGELOG.md
        uses: stefanzweifel/git-auto-commit-action@v4
        with:
          branch: master
          commit_message: "docs: update CHANGELOG.md for ${{ github.ref_name }} [skip ci]"
          file_pattern: CHANGELOG.md

      - name: Publish crates
        uses: katyo/publish-crates@v2
        with:
          registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }}
          ignore-unpublished-changes: true
          publish-delay: 30_000

      - name: Publish to NPM
        run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
        working-directory: ./pkg