Skip to content
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ max_line_length=120
[*.json]
indent_size=2

[*.yaml]
[{*.yaml,*.yml}]
indent_size=2

[*.ipynb]
Expand Down
33 changes: 33 additions & 0 deletions .github/workflows/generated-sources-master.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Auto-commit generated code

on:
push:
branches:
- master

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v3

- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'

- name: Run Gradle task
run: ./gradlew :core:processKDocsMain

- name: Commit changes
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git add ./core/generated-sources
git diff --staged --quiet || git commit -m "Automated commit of generated code"
git push
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
92 changes: 92 additions & 0 deletions .github/workflows/generated-sources.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: Show generated code in PR

on:
pull_request:
types:
- edited
- opened
- synchronize
- converted_to_draft
- ready_for_review

jobs:
build:
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Cancel Previous Runs
uses: styfle/[email protected]
with:
access_token: ${{ github.token }}

- name: Checkout repository
uses: actions/checkout@v3

- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'

- name: Configure Git User
run: |
git config --global user.email "[email protected]"
git config --global user.name "GitHub Actions"

- name: Run Gradle task
run: ./gradlew :core:processKDocsMain

- name: Check for changes in generated sources
id: git-diff
run: echo "::set-output name=changed::$(if git diff --quiet './core/generated-sources'; then echo 'false'; else echo 'true'; fi)"

- name: Commit and push if changes
id: git-commit
if: steps.git-diff.outputs.changed == 'true'
run: |
git checkout -b generated-sources/docs-update-${{ github.run_number }}
git add './core/generated-sources'
git commit -m "Update generated sources with recent changes"
git push origin generated-sources/docs-update-${{ github.run_number }}
echo "::set-output name=commit::$(git rev-parse HEAD)"

- name: Remove old comments
uses: actions/github-script@v5
if: steps.git-diff.outputs.changed == 'true'
with:
# language=js
script: |
const issue_number = context.issue.number;
const {owner, repo} = context.repo;

const comments = await github.rest.issues.listComments({
issue_number,
owner,
repo,
});

const botComments = comments.data.filter(
(comment) => comment.user.login === 'github-actions[bot]'
);

for (const comment of botComments) {
await github.rest.issues.deleteComment({
comment_id: comment.id,
owner,
repo,
});
}

- name: Add comment to PR
uses: actions/github-script@v5
if: steps.git-diff.outputs.changed == 'true'
with:
# language=js
script: |
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: "Generated sources will be updated after merging this PR.\nPlease inspect the changes in [here](https://github.com/${{ github.repository }}/commit/${{ steps.git-commit.outputs.commit }}).",
});
37 changes: 0 additions & 37 deletions core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import nl.jolanrensen.docProcessor.gradle.creatingProcessDocTask
import org.gradle.jvm.tasks.Jar
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jmailen.gradle.kotlinter.tasks.LintTask
import xyz.ronella.gradle.plugin.simple.git.OSType
import xyz.ronella.gradle.plugin.simple.git.task.GitTask

plugins {
Expand Down Expand Up @@ -170,41 +169,9 @@ tasks.withType<KorroTask> {
dependsOn(copySamplesOutputs)
}

// This task installs the pre-commit hook to the local machine the first time the project is built
// The pre-commit hook contains the command to run processKDocsMain before each commit
val installGitPreCommitHook by tasks.creating(Copy::class) {
doNotTrackState(/* reasonNotToTrackState = */ "Fails on TeamCity otherwise.")

val gitHooksDir = File(rootProject.rootDir, ".git/hooks")
if (gitHooksDir.exists()) {
from(File(rootProject.rootDir, "gradle/scripts/pre-commit"))
into(gitHooksDir)
fileMode = 755

// Workaround for https://github.com/Kotlin/dataframe/issues/612
if (OSType.identify() in listOf(OSType.Mac, OSType.Linux)) doLast {
exec {
workingDir(gitHooksDir)
commandLine("chmod", "755", "pre-commit")
}
}
} else {
logger.lifecycle("'.git/hooks' directory not found. Skipping installation of pre-commit hook.")
}
}
tasks.named("assemble") {
dependsOn(installGitPreCommitHook)
}

// region docPreprocessor

// This task is used to add all generated sources (from processKDocsMain) to git
val generatedSourcesFolderName = "generated-sources"
val addGeneratedSourcesToGit by tasks.creating(GitTask::class) {
directory.set(file("."))
command.set("add")
args.set(listOf("-A", generatedSourcesFolderName))
}

// Backup the kotlin source files location
val kotlinMainSources: FileCollection = kotlin.sourceSets.main.get().kotlin.sourceDirectories
Expand All @@ -225,10 +192,6 @@ val processKDocsMain by creatingProcessDocTask(processKDocsMainSources) {
}
task {
group = "KDocs"
doLast {
// ensure generated sources are added to git
addGeneratedSourcesToGit.executeCommand()
}
}
}

Expand Down
11 changes: 0 additions & 11 deletions gradle/scripts/pre-commit

This file was deleted.