name: Release on: push: branches: [main] schedule: - cron: "0 0 * * *" jobs: generate-dungeon: name: generate-dungeon runs-on: ubuntu-latest container: image: ghcr.io/puppeteer/puppeteer:latest env: OLLAMA_API_URL: ${{ secrets.OLLAMA_API_URL }} OLLAMA_API_KEY: ${{ secrets.OLLAMA_API_KEY }} COMFYUI_URL: ${{ secrets.COMFYUI_URL }} steps: - name: Checkout uses: https://github.com/actions/checkout@v6 - name: Setup Node uses: https://github.com/actions/setup-node@v6 with: node-version: "24" cache: "npm" - name: Install dependencies run: npm ci - name: Generate dungeon PDF run: npm start - name: Upload PDF artifact uses: https://github.com/actions/upload-artifact@v6 with: name: release-pdf path: "*.pdf" upload-to-gitea-release: name: upload-to-gitea-release runs-on: ubuntu-latest needs: generate-dungeon env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} steps: - name: Download PDF artifact uses: https://github.com/actions/download-artifact@v8 with: name: release-pdf - name: Create release and upload PDF run: | api_base="https://git.keligrubb.com/api/v1/repos/${{ gitea.repository }}" pdf=$(ls *.pdf | head -n1) tag=$(date +%F) echo "Creating release for tag $tag..." create_resp=$(curl -s -w "%{http_code}" -o /tmp/create.json -X POST \ -H "Authorization: token $GITEA_TOKEN" \ -H "Content-Type: application/json" \ -d "{\"tag_name\":\"$tag\",\"name\":\"$tag\"}" \ "$api_base/releases") echo "Create release HTTP status: $create_resp" echo "Fetching release ID..." release_id=$(curl -s \ -H "Authorization: token $GITEA_TOKEN" \ "$api_base/releases/tags/$tag" | awk -F: '/"id"[ ]*:/ {gsub(/[^0-9]/,"",$2); print $2; exit}') echo "Release ID = $release_id" echo "Checking if asset $pdf already exists..." assets=$(curl -s -H "Authorization: token $GITEA_TOKEN" \ "$api_base/releases/$release_id/assets") echo "Assets response: $assets" if echo "$assets" | grep -q "\"name\":\"$pdf\""; then echo "Asset $pdf already uploaded, skipping." exit 0 fi echo "Uploading $pdf to release $release_id..." upload_resp=$(curl -s -w "%{http_code}" -o /tmp/upload.json -X POST \ -H "Authorization: token $GITEA_TOKEN" \ -F "attachment=@$pdf" \ "$api_base/releases/$release_id/assets") echo "Upload HTTP status: $upload_resp" echo "Upload response: $(cat /tmp/upload.json)"