From da4c38c7ab07c7655ea2185542a743cfe614fbb2 Mon Sep 17 00:00:00 2001 From: "D.L." <140229250+deutschich@users.noreply.github.com> Date: Mon, 1 Dec 2025 19:19:29 +0100 Subject: [PATCH] Add GitHub Actions workflow for preview releases --- .github/workflows/preview-release.yml | 53 +++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 .github/workflows/preview-release.yml diff --git a/.github/workflows/preview-release.yml b/.github/workflows/preview-release.yml new file mode 100644 index 0000000..0876b20 --- /dev/null +++ b/.github/workflows/preview-release.yml @@ -0,0 +1,53 @@ +name: Preview Release + +on: + push: + branches: + - dev # Trigger on push to dev branch + +jobs: + build: + runs-on: ubuntu-latest + + steps: + # Step 1: Checkout code + - name: Checkout Repository + uses: actions/checkout@v4 + + # Step 2: Setup Java (required for building the plugin) + - name: Set up Java + uses: actions/setup-java@v4 + with: + java-version: '21' + distribution: 'temurin' + + # Step 3: Build the plugin with Maven + - name: Build Plugin + run: mvn clean package -DskipTests + + # Step 4: Create a preview release + - name: Create Preview Release + uses: softprops/action-gh-release@v2 + with: + tag_name: preview-${{ github.run_number }} + name: "Preview Build #${{ github.run_number }}" + body: | + 🚀 Automatic Preview Build + Commit: ${{ github.sha }} + Branch: ${{ github.ref_name }} + prerelease: true + files: target/*.jar + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + # Step 5: Cleanup old preview releases (keep only 10 newest) + - name: Cleanup old Preview Releases + run: | + echo "Deleting old Preview Releases, keeping only the 10 newest..." + gh release list --limit 100 --repo $GITHUB_REPOSITORY \ + | grep preview \ + | sort -rk2 \ + | awk 'NR>10 {print $1}' \ + | xargs -I {} gh release delete {} --repo $GITHUB_REPOSITORY --yes + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}