CI #2269
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
workflow_dispatch: | |
schedule: | |
# * is a special character in YAML so you have to quote this string | |
# every day at 10pm CST (4 UTC) | |
- cron: '0 4 * * *' | |
env: | |
macosGradleArgs: '-Dorg.gradle.jvmargs=-Xmx10g -Dfile.encoding=UTF-8 -XX:+UseParallelGC' | |
ubuntuGradleArgs: '-Dorg.gradle.jvmargs=-Xmx5g -Dfile.encoding=UTF-8 -XX:+UseParallelGC' | |
windowsGradleArgs: '-Dorg.gradle.jvmargs=-Xmx3500m -Dfile.encoding=UTF-8 -XX:+UseParallelGC' | |
jobs: | |
cancel-other-jobs: | |
runs-on: ubuntu-latest | |
steps: | |
# cancel previous jobs | |
- name: Cancel Previous Runs | |
uses: styfle/cancel-workflow-action@0.10.0 | |
env: | |
access_token: '${{ github.token }}' | |
detekt: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: detekt | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: detekt | |
cache-read-only: false | |
ktlint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: check out with token (used by forks) | |
uses: actions/checkout@v3 | |
if: github.event.pull_request.head.repo.full_name != github.repository | |
- name: check out with PAT (used by main repo) | |
uses: actions/checkout@v3 | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: KtLint format (used by main repo) | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: ktlintformat | |
cache-read-only: false | |
# If KtLint generated changes, commit and push those changes. | |
- name: commit changes (used by main repo) | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
commit_message: Apply KtLint format | |
commit_options: '--no-verify --signoff' | |
- name: KtLint check (used by forks) | |
if: github.event.pull_request.head.repo.full_name != github.repository | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: ktlintcheck | |
cache-read-only: false | |
versioning: | |
runs-on: ubuntu-latest | |
if: github.actor != 'renovate[bot]' | |
steps: | |
- name: check out with token (used by forks) | |
uses: actions/checkout@v3 | |
if: github.event.pull_request.head.repo.full_name != github.repository | |
- name: check out with PAT (used by main repo) | |
uses: actions/checkout@v3 | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: Check that the version is a -SNAPSHOT version | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: checkVersionIsSnapshot | |
cache-read-only: false | |
- name: Sync versions in website docs (used by main repo) | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: updateWebsiteNextDocsVersionRefs | |
cache-read-only: false | |
- name: Check versions in website docs (used by forks) | |
if: github.event.pull_request.head.repo.full_name != github.repository | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: checkWebsiteNextDocsVersionRefs | |
cache-read-only: false | |
- name: commit changes | |
uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
commit_message: update docs versions | |
commit_options: '--no-verify --signoff' | |
- name: Update version in website package.json (used by main repo) | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: updateWebsitePackageJsonVersion | |
cache-read-only: false | |
- name: Check version in website package.json (used by forks) | |
if: github.event.pull_request.head.repo.full_name != github.repository | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: checkWebsitePackageJsonVersion | |
cache-read-only: false | |
- name: commit changes (used by main repo) | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
commit_message: update website versions | |
commit_options: '--no-verify --signoff' | |
api-check: | |
runs-on: ubuntu-latest | |
if: github.actor != 'renovate[bot]' | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: api check | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: apicheck | |
cache-read-only: false | |
modulecheck: | |
runs-on: ubuntu-latest | |
if: github.actor != 'renovate[bot]' | |
steps: | |
- name: check out with token (used by forks) | |
uses: actions/checkout@v3 | |
if: github.event.pull_request.head.repo.full_name != github.repository | |
- name: check out with PAT (used by main repo) | |
uses: actions/checkout@v3 | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
token: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: ModuleCheck with auto-correct (used by main repo) | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: moduleCheckAuto | |
cache-read-only: false | |
# If KtLint generated changes, commit and push those changes. | |
- name: commit changes (used by main repo) | |
if: github.event.pull_request.head.repo.full_name == github.repository | |
uses: stefanzweifel/git-auto-commit-action@v4 | |
with: | |
commit_message: Apply ModuleCheck fixes | |
commit_options: '--no-verify --signoff' | |
- name: ModuleCheck check (used by forks) | |
if: github.event.pull_request.head.repo.full_name != github.repository | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: moduleCheck | |
cache-read-only: false | |
dependency-guard: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: dependency-guard | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: dependencyGuard | |
cache-read-only: false | |
website: | |
name: build website | |
runs-on: macos-latest | |
steps: | |
- name: Check out repo | |
uses: actions/checkout@v3 | |
# Node is required for npm | |
- name: Set up Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18.x | |
cache: yarn | |
cache-dependency-path: website/yarn.lock | |
- name: Install Yarn | |
working-directory: website | |
run: yarn install --frozen-lockfile | |
- uses: gradle/wrapper-validation-action@v1 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: compileKotlin | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: compileKotlin "${{ env.macosGradleArgs }}" | |
cache-read-only: false | |
- name: dokkaHtmlMultiModule | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: dokkaHtmlMultiModule "${{ env.macosGradleArgs }}" | |
cache-read-only: false | |
- name: buildSite | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: buildSite "${{ env.macosGradleArgs }}" | |
cache-read-only: false | |
- name: knit check | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: knitcheck | |
cache-read-only: false | |
tests: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: all tests | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: testJvm "${{ env.macosGradleArgs }}" | |
cache-read-only: false | |
- name: Archive test results | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: test-results-ubuntu | |
path: ./**/build/reports/tests/ | |
- name: Unit test results | |
uses: mikepenz/action-junit-report@v3 | |
if: failure() | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
report_paths: '**/build/**/TEST-*.xml' | |
check_name: Unit Test Results - Ubuntu | |
android-lint: | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.ref }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
fetch-depth: 0 | |
- name: Set up JDK | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: '11' | |
- name: android lint | |
uses: gradle/gradle-build-action@v2 | |
with: | |
arguments: lintMain "${{ env.macosGradleArgs }}" | |
cache-read-only: false |