esp32-simple 0.1.4

Renamed to esp-flow — see https://crates.io/crates/esp-flow
name: Release

on:
  push:
    tags:
      - 'v*'

permissions:
  contents: read
  pages: write
  id-token: write

env:
  CARGO_TERM_COLOR: always

jobs:
  publish:
    name: Publish to crates.io
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Rust
        uses: esp-rs/xtensa-toolchain@v1.5
        with:
          default: true
          buildtargets: esp32
          ldproxy: true
          version: 1.82.0.3

      - name: Check if version already published
        id: check_version
        run: |
          VERSION=$(grep '^version = ' Cargo.toml | head -1 | cut -d '"' -f 2)
          if curl -s -H 'User-Agent: esp32-simple-ci' https://crates.io/api/v1/crates/esp32-simple | \
             jq -e ".versions[] | select(.num == \"$VERSION\")" > /dev/null 2>&1; then
            echo "Version $VERSION already published, skipping"
            echo "exists=true" >> $GITHUB_OUTPUT
          else
            echo "Version $VERSION not found, will publish"
            echo "exists=false" >> $GITHUB_OUTPUT
          fi

      - name: Publish to crates.io
        if: steps.check_version.outputs.exists == 'false'
        run: cargo publish --no-verify --allow-dirty
        env:
          CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}

  docs:
    name: Deploy documentation
    runs-on: ubuntu-latest
    needs: publish
    environment:
      name: github-pages
      url: ${{ steps.deployment.outputs.page_url }}
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Rust
        uses: esp-rs/xtensa-toolchain@v1.5
        with:
          default: true
          buildtargets: esp32
          ldproxy: true
          version: 1.82.0.3

      - name: Build documentation
        run: cargo doc --no-deps

      - name: Create index redirect
        run: echo '<meta http-equiv="refresh" content="0;url=esp32_simple/index.html">' > target/xtensa-esp32-espidf/doc/index.html

      - name: Upload documentation artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: ./target/xtensa-esp32-espidf/doc

      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4