aboutsummaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorIgnat Beresnev <ignat.beresnev@jetbrains.com>2023-04-21 18:29:22 +0200
committerGitHub <noreply@github.com>2023-04-21 18:29:22 +0200
commiteb50c4f28d978fcd914b819d523e8da607d05b0c (patch)
tree87041774b82c0af473e3766089f67d939f901eee /.github
parentde63c4479bcd9a81db25b5432df82edb98119410 (diff)
downloaddokka-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.yml17
-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.yml47
-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.yml20
-rw-r--r--.github/workflows/tests-smoke.yml35
-rw-r--r--.github/workflows/tests-thorough.yml36
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