name: Build examples

on: pull_request

jobs:
  build:
    strategy:
      matrix:
        projects: [
            examples/gradle/dokka-gradle-example,
            examples/gradle/dokka-kotlinAsJava-example,
            examples/gradle/dokka-library-publishing-example,
            examples/gradle/dokka-multimodule-example,
            examples/gradle/dokka-multiplatform-example,
            examples/gradle/dokka-customFormat-example
        ]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: dorny/paths-filter@v2
        id: filter
        with:
          filters: |
            examples_changed:
              - '${{ matrix.projects }}/**'
      - uses: actions/setup-java@v1
        with:
          java-version: 11
      - run: ./gradlew build --no-daemon --stacktrace
        working-directory: ${{ matrix.projects }}
        if: steps.filter.outputs.examples_changed == 'true'

  run-dokka-html:
    strategy:
      matrix:
        projects: [
            examples/gradle/dokka-gradle-example,
            examples/gradle/dokka-kotlinAsJava-example,
            examples/gradle/dokka-library-publishing-example,
            examples/gradle/dokka-multiplatform-example,
            examples/gradle/dokka-customFormat-example
        ]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: dorny/paths-filter@v2
        id: filter
        with:
          filters: |
            examples_changed:
              - '${{ matrix.projects }}/**'
      - uses: actions/setup-java@v1
        with:
          java-version: 11
      - run: ./gradlew dokkaHtml --no-daemon --stacktrace
        working-directory: ${{ matrix.projects }}
        if: steps.filter.outputs.examples_changed == 'true'

  run-dokka-publishing:
    strategy:
      matrix:
        tasks: [dokkaJavadocJar, dokkaHtmlJar]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: dorny/paths-filter@v2
        id: filter
        with:
          filters: |
            examples_changed:
              - 'examples/gradle/dokka-library-publishing-example/**'
      - uses: actions/setup-java@v1
        with:
          java-version: 11
      - run: ./gradlew ${{ matrix.tasks }} --no-daemon --stacktrace
        working-directory: examples/gradle/dokka-library-publishing-example
        if: steps.filter.outputs.examples_changed == 'true'

  run-dokka-gradle-tasks:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        include:
          - task: "dokkaCustomFormat"
            dir: "examples/gradle/dokka-customFormat-example"
          - task: "dokkaHtmlMultiModule"
            dir: "examples/gradle/dokka-multimodule-example"
    steps:
      - uses: actions/checkout@v2
      - uses: dorny/paths-filter@v2
        id: filter
        with:
          filters: |
            examples_changed:
              - '${{ matrix.dir }}/**'
      - uses: actions/setup-java@v1
        with:
          java-version: 11
      - run: ./gradlew ${{ matrix.task }} --no-daemon --stacktrace
        working-directory: ${{ matrix.dir }}
        if: steps.filter.outputs.examples_changed == 'true'

  run-dokka-maven-example:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: dorny/paths-filter@v2
        id: filter
        with:
          filters: |
            examples_changed:
              - 'examples/maven/**'
          working-directory: examples/maven
      - uses: actions/setup-java@v1
        with:
          java-version: 11
      - run: mvn compile dokka:dokka
        working-directory: examples/maven
        if: steps.filter.outputs.examples_changed == 'true'