libauthcekunit 2.0.3

Super robust CSRF token extractor with configurable retry, logging, and strict validation
Documentation
name: Release & Publish

on:
  release:
    types: [published]

env:
  CARGO_TERM_COLOR: always

jobs:
  release:
    name: Build release artifacts & publish
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v6

      - name: Install Rust toolchain (stable)
        uses: dtolnay/rust-toolchain@stable

      - name: Rust cache
        uses: Swatinem/rust-cache@v2

      - name: Build Rust library (release)
        run: cargo build --release --verbose

      - name: Run tests (release)
        run: cargo test --release --verbose

      - name: Install cbindgen
        run: cargo install cbindgen

      - name: Generate C header
        run: make header

      - name: Build C static & shared libraries (release)
        run: |
          make static
          make dynamic

      - name: Prepare release assets
        run: |
          mkdir -p release-artifacts
          cp target/release/libauthcekunit.so release-artifacts/
          cp target/release/libauthcekunit.a release-artifacts/
          cp libauthcekunit.h release-artifacts/

      - name: Upload assets to GitHub Release
        uses: softprops/action-gh-release@v3
        with:
          files: |
            release-artifacts/libauthcekunit.so
            release-artifacts/libauthcekunit.a
            release-artifacts/libauthcekunit.h
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Publish to crates.io
        run: cargo publish --token ${{ secrets.CARGO_REGISTRY_TOKEN }}
        continue-on-error: false # Gagal total jika publish gagal (bisa diubah true jika opsional)