Skip to content

Add content field to item (#195) #375

Add content field to item (#195)

Add content field to item (#195) #375

Workflow file for this run

# This workflow will build a Java project with Gradle
name: 🏗️ Build
on:
schedule:
- cron: '40 5 * * SAT'
push:
branches: [ master ]
tags-ignore:
- 'v*'
jobs:
build:
name: 🏗️ Build and Test
runs-on: ubuntu-latest
outputs:
next-version: ${{ steps.version.outputs.next-version }}
steps:
- name: Build trigger event 🔎
run: |
echo "event name - ${{github.event_name}}"
echo "github.ref - ${{github.ref}}"
- name: Checkout repository ⚙️
uses: actions/checkout@v4
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: Setup Java 21 ⚙️
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Setup Gradle dependencies cache ⚙️
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts') }}
- name: Setup Gradle wrapper cache ⚙️
uses: actions/cache@v4
with:
path: ~/.gradle/wrapper
key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
- name: Validate Gradle wrapper ⚙️
uses: gradle/actions/wrapper-validation@v4
- name: Grant execute permission for gradlew ⚙️
run: chmod +x gradlew
- name: Build and test 🏗️
run: ./gradlew clean build jacocoTestReport javadoc
- name: Get version number 🔢
id: get-version
uses: release-drafter/release-drafter@v6
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Store next version 🔢
id: version
run: |
echo "next-version=${{ steps.get-version.outputs.tag_name }}" | cut -c -13,15- >> $GITHUB_OUTPUT
- name: Print next version 🔢
run: |
echo "Next version: ${{ steps.version.outputs.next-version }}"
code-analysis:
name: 🔎 Code Analysis
needs: [build]
if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/master' && github.event_name != 'schedule' && github.repository == 'w3stling/rssreader' }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository ⚙️
uses: actions/checkout@v4
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: Setup Java 21 ⚙️
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Cache SonarCloud packages ⚙️
uses: actions/cache@v4
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
- name: Setup Gradle dependencies cache ⚙️
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts') }}
- name: Setup Gradle wrapper cache ⚙️
uses: actions/cache@v4
with:
path: ~/.gradle/wrapper
key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
- name: Validate Gradle wrapper ⚙️
uses: gradle/actions/wrapper-validation@v4
- name: Grant execute permission for gradlew ⚙️
run: chmod +x gradlew
- name: Next version 🔢
run: |
echo "Next version: ${{ needs.build.outputs.next-version }}"
- name: Analyze code 🔎️
run: ./gradlew test jacocoTestReport sonar --info -Dsonar.projectVersion=${{ needs.build.outputs.next-version }}-SNAPSHOT
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
documentation:
name: 📚 Publish Javadoc
needs: [build]
if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/master' && github.event_name != 'schedule' }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository ⚙️
uses: actions/checkout@v4
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: Setup Java 21 ⚙️
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Setup Gradle dependencies cache ⚙️
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts') }}
- name: Setup Gradle wrapper cache ⚙️
uses: actions/cache@v4
with:
path: ~/.gradle/wrapper
key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
- name: Validate Gradle wrapper ⚙️
uses: gradle/actions/wrapper-validation@v4
- name: Grant execute permission for gradlew ⚙️
run: chmod +x gradlew
- name: Next version 🔢
run: |
echo "Next version: ${{ needs.build.outputs.next-version }}"
- name: Generate Javadoc 📝
run: ./gradlew javadoc
- name: Deploy Javadoc 📚
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: build/docs/javadoc
target-folder: javadoc/${{ needs.build.outputs.next-version }}-SNAPSHOT
commit-message: Publishing javadoc
clean: true
dry-run: false
publish-snapshot:
name: 🚀 Publish Snapshot
needs: [build]
if: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/master' && github.event_name != 'schedule' && github.repository == 'w3stling/rssreader' }}
runs-on: ubuntu-latest
steps:
- name: Checkout repository ⚙️
uses: actions/checkout@v4
with:
# Disabling shallow clone is recommended for improving relevancy of reporting
fetch-depth: 0
- name: Setup Java 21 ⚙️
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Setup Gradle dependencies cache ⚙️
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-caches-${{ hashFiles('**/*.gradle', '**/*.gradle.kts') }}
- name: Setup Gradle wrapper cache ⚙️
uses: actions/cache@v4
with:
path: ~/.gradle/wrapper
key: ${{ runner.os }}-gradle-wrapper-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
- name: Validate Gradle wrapper ⚙️
uses: gradle/actions/wrapper-validation@v4
- name: Grant execute permission for gradlew ⚙️
run: chmod +x gradlew
- name: Next version 🔢
run: |
echo "Next version: ${{ needs.build.outputs.next-version }}"
- name: Publish snapshot build 🚀
env:
ORG_GRADLE_PROJECT_sonatypePassword: ${{ secrets.SONATYPE_PASSWORD }}
ORG_GRADLE_PROJECT_sonatypeUsername: ${{ secrets.SONATYPE_USERNAME }}
ORG_GRADLE_PROJECT_signingKey: ${{ secrets.PGP_SECRET }}
ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.PGP_PASSPHRASE }}
run: ./gradlew publishToSonatype -Pversion=${{ needs.build.outputs.next-version }}-SNAPSHOT