name: Build LaTeX Document and Publish Release

on:
  push:
    branches:
      - main
  workflow_dispatch: # Allows manual trigger

jobs:
  build-and-release:
    runs-on: ubuntu-latest

    steps:
    # Check out the repository code
    - name: Checkout code
      uses: actions/checkout@v4

    # Set up LaTeX environment
    - name: Set up LaTeX environment
      run: sudo apt-get update && sudo apt-get install -y texlive-full

    # Compile the LaTeX document
    - name: Compile LaTeX
      run: |
        cd latex
        mkdir -p output
        pdflatex -output-directory=output dokumentation.tex
      # Replace `main.tex` with the name of your main LaTeX file

    # Upload the PDF as an artifact (optional, for debugging)
    - name: Upload PDF Artifact
      uses: actions/upload-artifact@v3
      with:
        name: built-pdf
        path: output/dokumentation.pdf

     # Create a release in Gitea
    - name: Create Gitea Release
      id: create_release
      env:
        GITEA_TOKEN: ${{ secrets.TOKEN }}
      run: |
        curl -X POST \
          -H "Authorization: token $GITEA_TOKEN" \
          -H "Content-Type: application/json" \
          -d '{"tag_name": "v1.0.0", "target_commitish": "main", "name": "LaTeX Build - v1.0.0", "body": "This release contains the compiled LaTeX document.", "draft": false, "prerelease": false}' \
          https://git.out.jafre.li/api/v1/repos/jafreli/Laborarbeit-Projektmanagment/releases

    # Upload the compiled PDF to the Gitea release
    - name: Upload Release Asset
      env:
        GITEA_TOKEN: ${{ secrets.TOKEN }}
      run: |
        release_id=$(curl -s \
          -H "Authorization: token $GITEA_TOKEN" \
          https://git.out.jafre.li/api/v1/repos/jafreli/Laborarbeit-Projektmanagment/releases \
          | jq -r '.[0].id')

        curl -X POST \
          -H "Authorization: token $GITEA_TOKEN" \
          -F "name=dokumentation.pdf" \
          -F "attachment=@output/dokumentation.pdf" \
          https://git.out.jafre.li/api/v1/repos/jafreli/Laborarbeit-Projektmanagment/releases/$release_id/assets
