casile 0.14.4

The command line interface to the CaSILE toolkit, a book publishing workflow employing SILE and other wizardry
Documentation
name: Build

on: [ push, pull_request ]

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:

  build-ubuntu:
    strategy:
      fail-fast: false
    runs-on: ubuntu-22.04
    name: Build Ubuntu
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - name: Cache Rust
        uses: Swatinem/rust-cache@v2
      - name: Install system dependencies
        run: |
          sudo apt-get update
          sudo apt-get install clang libarchive-tools mold luarocks
      - name: Setup ‘cargo’
        uses: actions-rs/toolchain@v1
      - name: Configure
        run: |
          ./bootstrap.sh
          ./configure \
            --enable-developer-mode \
            --disable-dependency-checks \
            CHECKMAKE=false LUACHECK=false RUFF=false STYLUA=false TYPOS=cat
          echo "VERSION=$(./build-aux/git-version-gen .tarball-version)" >> $GITHUB_ENV
          echo "MAKEFLAGS=-j$(nproc) -Otarget" >> $GITHUB_ENV
      - name: Make
        run: |
          make
      - name: Package
        run: |
          make dist
      - name: Upload source dist artifact
        if: ${{ ! startsWith(github.ref, 'refs/tags/v') }}
        uses: actions/upload-artifact@v4
        with:
          name: casile-${{ env.VERSION }}
          path: casile-${{ env.VERSION }}.zip
      - name: Release
        uses: softprops/action-gh-release@v2
        if: github.repository == 'sile-typesetter/casile' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '.')
        with:
          body_path: casile-${{ env.VERSION }}.md
          files: |
            casile-${{ env.VERSION }}.zip
            casile-${{ env.VERSION }}.tar.zst
            casile-${{ env.VERSION }}.sha256.txt