diff options
Diffstat (limited to '.github/workflows/gh-pages-deploy-examples.yml')
-rw-r--r-- | .github/workflows/gh-pages-deploy-examples.yml | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/.github/workflows/gh-pages-deploy-examples.yml b/.github/workflows/gh-pages-deploy-examples.yml new file mode 100644 index 00000000..752d8f0f --- /dev/null +++ b/.github/workflows/gh-pages-deploy-examples.yml @@ -0,0 +1,99 @@ +name: Deploy examples to GitHub Pages + +on: + push: + branches: + - master + paths: + - 'examples/**' + +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: 17 + cache: 'maven' + - uses: gradle/gradle-build-action@v2 + with: + gradle-home-cache-cleanup: true + - 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, + dokka-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: 17 + cache: 'maven' + - uses: gradle/gradle-build-action@v2 + with: + gradle-home-cache-cleanup: true + - 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 |