name: Release — Semantic Versioning on: push: tags: - 'v*' jobs: release: name: "Create GitHub Release" runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Extract version from tag id: version run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT - name: Generate changelog from commits id: changelog run: | PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "") if [ -n "$PREV_TAG" ]; then CHANGES=$(git log ${PREV_TAG}..HEAD --pretty=format:"- %s (%h)" --no-merges) else CHANGES=$(git log --pretty=format:"- %s (%h)" --no-merges -20) fi { echo "changelog<> "$GITHUB_OUTPUT" - name: Create GitHub Release uses: softprops/action-gh-release@v2 with: tag_name: ${{ github.ref_name }} name: "OmniFile Processor v${{ steps.version.outputs.VERSION }}" body: | ## OmniFile AI Processor v${{ steps.version.outputs.VERSION }} ### Changes ${{ steps.changelog.outputs.changelog }} ### Installation ```bash # Lightweight (core only): pip install -r requirements-core.txt # + OCR engines: pip install -r requirements-core.txt -r requirements-ocr.txt # Full stack (all features): pip install -r requirements-full.txt ``` ### Quick Start ```bash streamlit run app.py # Streamlit UI (6 tabs) python -m src.gradio_ui # Gradio UI (7 tabs) python main.py # CLI interface ``` --- **Author:** Dr Abdulmalek Tamer Al-husseini **Location:** Homs, Syria **Email:** Abdulmalek.husseini@gmail.com draft: false prerelease: ${{ contains(steps.version.outputs.VERSION, 'rc') || contains(steps.version.outputs.VERSION, 'beta') }} generate_release_notes: true