1.0.5 #54
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Test & Publish | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - develop | |
| pull_request: | |
| branches: | |
| - main | |
| - develop | |
| release: | |
| types: [created] # Triggers publishing when a release is created | |
| permissions: | |
| contents: read | |
| checks: write | |
| pull-requests: write | |
| packages: write # Required for publishing to GitHub Packages | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Find JAVA_HOME | |
| run: | | |
| echo "Checking JAVA_HOME..." | |
| if [ -z "$JAVA_HOME" ]; then | |
| JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java)))) | |
| echo "JAVA_HOME found: $JAVA_HOME" | |
| echo "JAVA_HOME=$JAVA_HOME" >> $GITHUB_ENV | |
| fi | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| cache: gradle | |
| - name: Restore Gradle Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ./gradle/wrapper | |
| .gradle/build-cache | |
| key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| gradle-${{ runner.os }}- | |
| - name: Grant Execute Permission to Gradle Wrapper | |
| run: chmod +x gradlew | |
| - name: Run Gradle Checks and Tests | |
| run: ./gradlew :gradle-plugin:processor:check --no-daemon --scan --stacktrace --build-cache | |
| continue-on-error: true # Continue even if tests fail | |
| - name: Upload Test Results | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-results | |
| path: '**/build/test-results/**/*.xml' | |
| retention-days: 7 | |
| - name: Publish Test Report | |
| if: always() | |
| uses: dorny/test-reporter@v1 | |
| with: | |
| name: JUnit Test Results | |
| path: '**/build/test-results/**/*.xml' | |
| reporter: java-junit | |
| publish: | |
| needs: test # Runs only if tests pass. | |
| if: github.event_name == 'release' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: 'temurin' | |
| java-version: '17' | |
| cache: gradle | |
| - name: Restore Gradle Cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: | | |
| ./gradle/wrapper | |
| .gradle/build-cache | |
| key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} | |
| restore-keys: | | |
| gradle-${{ runner.os }}- | |
| - id: get_version | |
| name: Get version | |
| uses: jannemattila/get-version-from-tag@v4 | |
| - name: Publish to Maven Repository | |
| run: | | |
| VERSION=$(echo "${{ steps.get_version.outputs.version }}") | |
| ./gradlew :gradle-plugin:plugin:publishAndReleaseToMavenCentral :gradle-plugin:processor:publishAndReleaseToMavenCentral -Pversion=$VERSION --build-cache | |
| env: | |
| ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_USERNAME }} | |
| ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_PASSWORD }} | |
| ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.GPG_PRIVATE_KEY }} |