diff --git a/.github/workflows/pdfforge-ci.yml b/.github/workflows/pdfforge-ci.yml new file mode 100644 index 00000000..6a1eb37d --- /dev/null +++ b/.github/workflows/pdfforge-ci.yml @@ -0,0 +1,72 @@ +name: PdfForge CI + +on: + push: + branches: [ main ] + pull_request: + branches: [ main ] + types: [opened, synchronize, reopened, ready_for_review] + workflow_dispatch: + +concurrency: + group: pdfforge-${{ github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + changes: + name: Detect PdfForge changes + runs-on: ubuntu-latest + outputs: + pdfforge: ${{ steps.filter.outputs.pdfforge }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.head_ref || github.ref }} + + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + pdfforge: + - 'PdfForge/**' + - 'gradle/**' + - 'gradlew' + - 'gradlew.bat' + - 'gradle.properties' + - 'settings.gradle*' + - 'build.gradle*' + - 'gradle/libs.versions.toml' + - '.github/workflows/**' + + build: + name: Build & Test + needs: [changes] + if: github.event_name == 'workflow_dispatch' || needs.changes.outputs.pdfforge == 'true' + runs-on: ubuntu-latest + defaults: + run: + working-directory: PdfForge + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.head_ref || github.ref }} + + - name: Setup Java 17 + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '17' + + - name: Gradle build cache + uses: gradle/actions/setup-gradle@v4 + + - name: Make gradlew executable + run: chmod +x ./gradlew + + - name: Build + run: ./gradlew build