name: Build and deploy examples to GitHub Pages on: push: branches: - master jobs: build-examples: runs-on: ubuntu-latest if: github.repository == 'Kotlin/dokka' strategy: matrix: projects: [ dokka-gradle-example, dokka-kotlinAsJava-example, dokka-library-publishing-example, dokka-multiplatform-example, dokka-customFormat-example ] steps: - uses: actions/checkout@v3 - uses: dorny/paths-filter@v2 id: filter with: filters: | examples_changed: - 'examples/gradle/${{ matrix.projects }}/**' - uses: actions/setup-java@v3 with: distribution: 'zulu' java-version: 11 - uses: gradle/gradle-build-action@v2 - name: Build html run: ./gradlew dokkaHtml --no-daemon --stacktrace working-directory: examples/gradle/${{ matrix.projects }} if: steps.filter.outputs.examples_changed == 'true' - name: Upload artifact uses: actions/upload-artifact@v2 if: steps.filter.outputs.examples_changed == 'true' with: name: ${{ matrix.projects }} path: examples/gradle/${{ matrix.projects }}/build/dokka build-multimodule-examples: runs-on: ubuntu-latest if: github.repository == 'Kotlin/dokka' strategy: matrix: projects: [ dokka-versioning-multimodule-example ] steps: - uses: actions/checkout@v3 - uses: dorny/paths-filter@v2 id: filter with: filters: | examples_changed: - 'examples/gradle/${{ matrix.projects }}/**' - uses: actions/setup-java@v3 with: distribution: 'zulu' java-version: 11 - uses: gradle/gradle-build-action@v2 - name: Build html run: ./gradlew dokkaHtmlMultiModule --no-daemon --stacktrace working-directory: examples/gradle/${{ matrix.projects }} if: steps.filter.outputs.examples_changed == 'true' - name: Upload artifact uses: actions/upload-artifact@v2 if: steps.filter.outputs.examples_changed == 'true' with: name: ${{ matrix.projects }} path: examples/gradle/${{ matrix.projects }}/parentProject/build/dokka deploy-examples: runs-on: ubuntu-latest needs: [ build-examples, build-multimodule-examples ] steps: - uses: actions/download-artifact@v2 with: path: public/examples - name: Deploy uses: peaceiris/actions-gh-pages@v3 with: github_token: ${{ secrets.GITHUB_TOKEN }} keep_files: true publish_dir: ./public full_commit_message: Publish examples