Skip to content

CI

CI #2269

Workflow file for this run

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