diff options
author | Ignat Beresnev <ignat.beresnev@jetbrains.com> | 2023-04-21 18:29:22 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-21 18:29:22 +0200 |
commit | eb50c4f28d978fcd914b819d523e8da607d05b0c (patch) | |
tree | 87041774b82c0af473e3766089f67d939f901eee /.github | |
parent | de63c4479bcd9a81db25b5432df82edb98119410 (diff) | |
download | dokka-eb50c4f28d978fcd914b819d523e8da607d05b0c.tar.gz dokka-eb50c4f28d978fcd914b819d523e8da607d05b0c.tar.bz2 dokka-eb50c4f28d978fcd914b819d523e8da607d05b0c.zip |
Clean up GitHub workflows (#2951)
* Run Gradle wrapper checksum less often
* Do not publish examples as artifacts in internal PRs
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/check-api.yml (renamed from .github/workflows/check.yml) | 9 | ||||
-rw-r--r-- | .github/workflows/check-gradle.yml | 17 | ||||
-rw-r--r-- | .github/workflows/examples-build.yml (renamed from .github/workflows/dokka-examples.yml) | 5 | ||||
-rw-r--r-- | .github/workflows/gh-pages-deploy-examples.yml (renamed from .github/workflows/gh-pages-examples.yml) | 4 | ||||
-rw-r--r-- | .github/workflows/gh-pages-deploy-mkdocs.yml (renamed from .github/workflows/gh-pages.yml) | 14 | ||||
-rw-r--r-- | .github/workflows/gradle-test.pr.yml | 47 | ||||
-rw-r--r-- | .github/workflows/preview-cleanup-web-s3.yml (renamed from .github/workflows/s3-cleanup.yml) | 3 | ||||
-rw-r--r-- | .github/workflows/preview-publish-ga.yml (renamed from .github/workflows/gh-actions-artifacts-snapshots.yml) | 19 | ||||
-rw-r--r-- | .github/workflows/preview-publish-web-s3.yml (renamed from .github/workflows/s3-snapshots.yml) | 8 | ||||
-rw-r--r-- | .github/workflows/rebase.yml | 20 | ||||
-rw-r--r-- | .github/workflows/tests-smoke.yml | 35 | ||||
-rw-r--r-- | .github/workflows/tests-thorough.yml | 36 |
12 files changed, 119 insertions, 98 deletions
diff --git a/.github/workflows/check.yml b/.github/workflows/check-api.yml index f3ae5ded..7322809e 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check-api.yml @@ -1,4 +1,4 @@ -name: Check +name: API check on: pull_request @@ -7,13 +7,8 @@ concurrency: cancel-in-progress: true jobs: - validate-wrapper: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: gradle/wrapper-validation-action@v1 - apiCheck: + name: binary compatibility runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/check-gradle.yml b/.github/workflows/check-gradle.yml new file mode 100644 index 00000000..1e85a4d2 --- /dev/null +++ b/.github/workflows/check-gradle.yml @@ -0,0 +1,17 @@ +name: Gradle check + +on: + push: + branches: + - master + pull_request: + paths: + - 'gradle/**' + +jobs: + wrapper: + name: wrapper checksums + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/dokka-examples.yml b/.github/workflows/examples-build.yml index 4d3a9f8d..18aa2985 100644 --- a/.github/workflows/dokka-examples.yml +++ b/.github/workflows/examples-build.yml @@ -1,6 +1,9 @@ name: Build examples -on: pull_request +on: + pull_request: + paths: + - 'examples/**' concurrency: group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' diff --git a/.github/workflows/gh-pages-examples.yml b/.github/workflows/gh-pages-deploy-examples.yml index 81c9f195..752d8f0f 100644 --- a/.github/workflows/gh-pages-examples.yml +++ b/.github/workflows/gh-pages-deploy-examples.yml @@ -1,9 +1,11 @@ -name: Build and deploy examples to GitHub Pages +name: Deploy examples to GitHub Pages on: push: branches: - master + paths: + - 'examples/**' jobs: build-examples: diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages-deploy-mkdocs.yml index ab8e9aeb..b212f55b 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages-deploy-mkdocs.yml @@ -1,9 +1,11 @@ -name: Build and deploy MkDocs to GitHub Pages +name: Deploy MkDocs to GitHub Pages on: push: branches: - master + paths: + - 'mkdocs/**' release: types: [ published ] @@ -15,13 +17,6 @@ jobs: - uses: actions/checkout@v3 with: path: dokka - - uses: dorny/paths-filter@v2 - id: filter - with: - filters: | - mkdocs_changed: - - 'mkdocs/**' - working-directory: ./dokka - uses: actions/setup-java@v3 with: distribution: 'zulu' @@ -32,15 +27,12 @@ jobs: gradle-home-cache-cleanup: true - name: Get current dokka version run: echo "DOKKA_VERSION=`./gradlew :properties | grep '^version:.*' | cut -d ' ' -f 2`" >> $GITHUB_ENV - if: github.event_name == 'release' || steps.filter.outputs.mkdocs_changed == 'true' working-directory: ./dokka - name: Build docs run: ./gradlew mkdocsBuild -Pdokka_version=$DOKKA_VERSION --info - if: github.event_name == 'release' || steps.filter.outputs.mkdocs_changed == 'true' working-directory: ./dokka - name: Deploy uses: peaceiris/actions-gh-pages@v3 - if: github.event_name == 'release' || steps.filter.outputs.mkdocs_changed == 'true' with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./dokka/mkdocs/build/mkdocs diff --git a/.github/workflows/gradle-test.pr.yml b/.github/workflows/gradle-test.pr.yml deleted file mode 100644 index 74017edc..00000000 --- a/.github/workflows/gradle-test.pr.yml +++ /dev/null @@ -1,47 +0,0 @@ -name: Test - -on: pull_request - -concurrency: - group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' - cancel-in-progress: true - -jobs: - test-ubuntu: - strategy: - matrix: - javaVersion: [ 8, 11, 17 ] - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - distribution: 'zulu' - java-version: 17 - cache: 'maven' - - uses: gradle/gradle-build-action@v2 - env: - ORG_GRADLE_PROJECT_org.jetbrains.dokka.javaToolchain.test: ${{ matrix.javaVersion }} - with: - gradle-home-cache-cleanup: true - arguments: clean test --stacktrace - - test-windows: - strategy: - matrix: - javaVersion: [ 11, 17 ] - fail-fast: false - runs-on: windows-latest - steps: - - uses: actions/checkout@v3 - - uses: actions/setup-java@v3 - with: - distribution: 'zulu' - java-version: 17 - cache: 'maven' - - uses: gradle/gradle-build-action@v2 - env: - ORG_GRADLE_PROJECT_org.jetbrains.dokka.javaToolchain.test: ${{ matrix.javaVersion }} - with: - gradle-home-cache-cleanup: true - arguments: clean test --stacktrace --no-daemon --parallel --max-workers=1 diff --git a/.github/workflows/s3-cleanup.yml b/.github/workflows/preview-cleanup-web-s3.yml index 52372f2c..289fdf6a 100644 --- a/.github/workflows/s3-cleanup.yml +++ b/.github/workflows/preview-cleanup-web-s3.yml @@ -1,4 +1,4 @@ -name: S3-cleanup +name: Clean up S3 on: delete @@ -7,6 +7,7 @@ env: jobs: cleanup: + name: Branch preview runs-on: ubuntu-latest steps: - name: Configure AWS credentials for S3 access diff --git a/.github/workflows/gh-actions-artifacts-snapshots.yml b/.github/workflows/preview-publish-ga.yml index d027b009..4171ede3 100644 --- a/.github/workflows/gh-actions-artifacts-snapshots.yml +++ b/.github/workflows/preview-publish-ga.yml @@ -1,15 +1,18 @@ -name: Build example projects and publish them to GitHub Actions Artifacts +name: Publish preview to GitHub Actions Artifacts on: pull_request: push: branches: - master + workflow_dispatch: jobs: - coroutines: + kotlinx-coroutines: runs-on: ubuntu-latest - if: github.repository == 'Kotlin/dokka' + if: > # Run this job only for pull requests from forks because members with write access have web preview + github.event_name != 'pull_request' || + (github.event_name == pull_request && github.event.pull_request.head.repo.full_name != 'Kotlin/dokka') steps: - name: Checkout dokka uses: actions/checkout@v3 @@ -34,9 +37,11 @@ jobs: path: /home/runner/work/dokka/coroutines retention-days: 7 - serialization: + kotlinx-serialization: runs-on: ubuntu-latest - if: github.repository == 'Kotlin/dokka' + if: > # Run this job only for pull requests from forks because members with write access have web preview + github.event_name != 'pull_request' || + (github.event_name == pull_request && github.event.pull_request.head.repo.full_name != 'Kotlin/dokka') steps: - name: Checkout dokka uses: actions/checkout@v3 @@ -63,7 +68,9 @@ jobs: biojava: runs-on: ubuntu-latest - if: github.repository == 'Kotlin/dokka' + if: > # Run this job only for pull requests from forks because members with write access have web preview + github.event_name != 'pull_request' || + (github.event_name == pull_request && github.event.pull_request.head.repo.full_name != 'Kotlin/dokka') steps: - name: Checkout dokka uses: actions/checkout@v3 diff --git a/.github/workflows/s3-snapshots.yml b/.github/workflows/preview-publish-web-s3.yml index af69e494..a9d34e28 100644 --- a/.github/workflows/s3-snapshots.yml +++ b/.github/workflows/preview-publish-web-s3.yml @@ -1,13 +1,13 @@ -name: Build example projects and publish them to s3 +name: Publish preview to web (S3) -on: push +on: [ push, workflow_dispatch ] env: branch-name: ${GITHUB_REF#refs/heads/} bucket-name: 'dokka-snapshots' jobs: - coroutines: + kotlinx-coroutines: runs-on: ubuntu-latest if: github.repository == 'Kotlin/dokka' steps: @@ -38,7 +38,7 @@ jobs: - name: Print link run: echo https://dokka-snapshots.s3.eu-central-1.amazonaws.com/${{ env.branch-name }}/coroutines/${GITHUB_SHA::7}/index.html - serialization: + kotilnx-serialization: runs-on: ubuntu-latest if: github.repository == 'Kotlin/dokka' steps: diff --git a/.github/workflows/rebase.yml b/.github/workflows/rebase.yml deleted file mode 100644 index a64526e6..00000000 --- a/.github/workflows/rebase.yml +++ /dev/null @@ -1,20 +0,0 @@ -name: Automatic Rebase - -on: - issue_comment: - types: [ created ] - -jobs: - rebase: - name: Rebase - if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase') - runs-on: ubuntu-latest - steps: - - name: Checkout the latest code - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Automatic Rebase - uses: cirrus-actions/rebase@1.5 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file diff --git a/.github/workflows/tests-smoke.yml b/.github/workflows/tests-smoke.yml new file mode 100644 index 00000000..96ab0196 --- /dev/null +++ b/.github/workflows/tests-smoke.yml @@ -0,0 +1,35 @@ +name: Test [smoke] + +on: pull_request + +concurrency: + group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}' + cancel-in-progress: true + +jobs: + test-matrix: + strategy: + matrix: + os: [ ubuntu-latest, windows-latest ] + fail-fast: false + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: 17 + cache: 'maven' + - uses: gradle/gradle-build-action@v2 + env: + ORG_GRADLE_PROJECT_org.jetbrains.dokka.javaToolchain.test: 11 + with: + gradle-home-cache-cleanup: true + - name: Run tests under Windows + if: matrix.os == 'windows-latest' + # Running tests with the Gradle daemon on windows agents leads to some very strange + # JVM crashes for some reason. Most likely a problem of Gradle/GitHub/Windows server + run: ./gradlew clean test --stacktrace --no-daemon + - name: Run tests under Ubuntu + if: matrix.os != 'windows-latest' + run: ./gradlew clean test --stacktrace diff --git a/.github/workflows/tests-thorough.yml b/.github/workflows/tests-thorough.yml new file mode 100644 index 00000000..6e54f9a3 --- /dev/null +++ b/.github/workflows/tests-thorough.yml @@ -0,0 +1,36 @@ +name: Test [thorough] + +on: + workflow_dispatch: + push: + branches: + - master + +jobs: + test-matrix: + strategy: + matrix: + os: [ ubuntu-latest, windows-latest, macos-latest ] + javaVersion: [ 8, 11, 17 ] + fail-fast: false + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: 17 + cache: 'maven' + - uses: gradle/gradle-build-action@v2 + env: + ORG_GRADLE_PROJECT_org.jetbrains.dokka.javaToolchain.test: ${{ matrix.javaVersion }} + with: + gradle-home-cache-cleanup: true + - name: Run tests under Windows + if: matrix.os == 'windows-latest' + # Running tests with the Gradle daemon on windows agents leads to some very strange + # JVM crashes for some reason. Most likely a problem of Gradle/GitHub/Windows server + run: ./gradlew clean test --stacktrace --no-daemon + - name: Run tests under Ubuntu/Macos + if: matrix.os != 'windows-latest' + run: ./gradlew clean test --stacktrace |