name: CI/CD on: push: branches: [ "main" ] tags: [ "v*" ] pull_request: branches: [ "main" ] workflow_dispatch: permissions: contents: write jobs: ci: name: Build and Test runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Java 21 uses: actions/setup-java@v4 with: distribution: temurin java-version: "21" cache: gradle - name: Build run: ./gradlew -PjavaVersion=21 clean build --no-daemon - name: Upload Jar Artifact uses: actions/upload-artifact@v4 with: name: solar-system-jar path: build/libs/*.jar if-no-files-found: error cd: name: Release Artifact if: startsWith(github.ref, 'refs/tags/v') runs-on: ubuntu-latest needs: ci steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Java 21 uses: actions/setup-java@v4 with: distribution: temurin java-version: "21" cache: gradle - name: Build Release Jar run: ./gradlew -PjavaVersion=21 clean jar --no-daemon - name: Publish GitHub Release uses: softprops/action-gh-release@v2 with: files: build/libs/*.jar