name: Auto Release on: push: branches: [main] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code run: | git init git remote add origin ${{ gitea.server_url }}/${{ gitea.repository }}.git git fetch --depth 1 origin ${{ gitea.sha }} git checkout FETCH_HEAD - name: Setup Java 21 run: | apt-get update && apt-get install -y openjdk-21-jdk export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 export PATH=$JAVA_HOME/bin:$PATH java -version - name: Build with Maven run: | chmod +x mvnw 2>/dev/null || true if [ -f "mvnw" ]; then ./mvnw -B clean package -DskipTests else mvn -B clean package -DskipTests fi - name: Verify JAR run: ls -la target/*.jar - name: Create Release via API run: | TAG="build-${GITHUB_RUN_NUMBER:-${{ gitea.run_number }}}" VERSION="v1.0.${{ gitea.run_number }}" # Create tag curl -s -X POST \ -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ -H "Content-Type: application/json" \ -d "{\"ref\":\"refs/tags/${TAG}\",\"sha\":\"${{ gitea.sha }}\"}" \ "${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/tags" || true # Create release curl -s -X POST \ -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ -H "Content-Type: application/json" \ -d "{ \"tag_name\": \"${TAG}\", \"name\": \"Build ${{ gitea.run_number }}\", \"body\": \"Auto release from GitHub Actions\\n\\nCommit: ${{ gitea.sha }}\\nBranch: ${{ gitea.ref_name }}\", \"draft\": false, \"prerelease\": false }" \ "${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases" # Upload JAR asset (if release created) RELEASE_ID=$(curl -s \ -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ "${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/tags/${TAG}" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2) if [ -n "$RELEASE_ID" ]; then curl -s -X POST \ -H "Authorization: token ${{ secrets.GITEA_TOKEN }}" \ -F "attachment=@target/Sdf1_login.jar" \ "${{ gitea.server_url }}/api/v1/repos/${{ gitea.repository }}/releases/${RELEASE_ID}/assets" fi