aztro_core 0.1.17

aztro core library
Documentation
name: aztro_core release

on:
  push:
    branches:
      - main

permissions:
  contents: write

jobs:
  create-release:
    if: contains(github.event.head_commit.message, 'release')
    runs-on: windows-latest
    outputs:
      release_upload_url: ${{ steps.create_release.outputs.upload_url }}
      release_tag: ${{ steps.release_tag.outputs.RELEASE_TAG }}
    steps:
      - name: Determine Release Tag
        id: release_tag
        shell: pwsh
        run: |

          $RELEASE_TAG = "v$([datetime]::Now.ToString('yyyy.MM.dd.HHmmss'))"
          echo "RELEASE_TAG=$RELEASE_TAG" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
          echo "Release tag: $RELEASE_TAG"

      - name: Create Release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ steps.release_tag.outputs.RELEASE_TAG }}
          release_name: aztro_core 🚀 release ${{ steps.release_tag.outputs.RELEASE_TAG }}
          draft: false
          prerelease: false

  release:
    needs: create-release
    if: contains(github.event.head_commit.message, 'release')
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v3

      - name: Cache Cargo Registry and Target Directory
        uses: actions/cache@v2
        with:
          path: |

            ~/.cargo/registry
            ~/.cargo/git
            target
          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |

            ${{ runner.os }}-cargo-

      - name: Setup Rust
        uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          profile: minimal
          override: true

      - name: Build Rust Project
        run: cargo build --release --target x86_64-pc-windows-msvc

      - name: Upload Artifact to Release
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ needs.create-release.outputs.release_upload_url }}
          asset_path: ./target/x86_64-pc-windows-msvc/release/libaztro_core.rlib
          asset_name: libaztro_core.rlib
          asset_content_type: application/octet-stream