73 lines
2.6 KiB
YAML
73 lines
2.6 KiB
YAML
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
|