Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
22 changes: 12 additions & 10 deletions .github/workflows/call-detekt-validation.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,22 @@
name: "detekt-validation"
name: "Detekt static analysis"
on:
workflow_call:

jobs:
detekt:
name: "Check project by detekt"
name: "Run detekt"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up JDK 1.17
uses: actions/setup-java@v5
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up JDK 21
uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0
with:
distribution: 'temurin'
java-version: '17'
- name: Give gradle permission
java-version: '21'
- name: Make gradlew executable
run: chmod +x gradlew
- name: detekt
uses: gradle/gradle-build-action@v3
- name: Run detekt
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3
with:
arguments: :build-logic:detekt
arguments: detekt --stacktrace
11 changes: 6 additions & 5 deletions .github/workflows/call-gradle-wrapper-validation.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
name: "gradle-wrapper-validation"
name: "Validate Gradle wrapper"
on:
workflow_call:

jobs:
validation:
name: "Gradle Wrapper Validation"
name: "Verify gradle-wrapper.jar checksum"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Validate Gradle Wrapper
uses: gradle/wrapper-validation-action@v3
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Verify Gradle wrapper checksum
uses: gradle/wrapper-validation-action@f9c9c575b8b21b6485636a91ffecd10e558c62f6 # v3
24 changes: 12 additions & 12 deletions .github/workflows/call-publish-validation.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "Validate local publish"
name: "Validate publication"
on:
workflow_call:
secrets:
Expand All @@ -18,9 +18,8 @@ jobs:
strategy:
matrix:
target:
- ":build-logic:convention:publishToMavenLocal"
- ":build-logic:property:publishToMavenLocal"
name: "Validate local publish"
- "publishToMavenLocal"
name: "Publish to Maven Local"
runs-on: ubuntu-latest
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALUSERNAME }}
Expand All @@ -29,15 +28,16 @@ jobs:
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYID }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYPASSWORD }}
steps:
- uses: actions/checkout@v6
- name: Set up JDK 1.17
uses: actions/setup-java@v5
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up JDK 21
uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0
with:
distribution: 'temurin'
java-version: '17'
- name: Give gradle permission
java-version: '21'
- name: Make gradlew executable
run: chmod +x gradlew
- name: Run publish
uses: gradle/gradle-build-action@v3
- name: Publish to Maven Local
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3
with:
arguments: ${{ matrix.target }} --stacktrace
arguments: ${{ matrix.target }} --stacktrace
27 changes: 18 additions & 9 deletions .github/workflows/call-release-mkdocs.yml
Original file line number Diff line number Diff line change
@@ -1,33 +1,42 @@
name: "Build and deploy material mkdocs to gh-pages"
name: "Deploy MkDocs site to gh-pages"
on:
workflow_call:

jobs:
check_docs_files_change:
name: "Check docs files changed"
name: "Detect documentation changes"
runs-on: ubuntu-latest
# needs.check_docs_files_change.outputs.DOCS_FILES_CHANGED
outputs:
DOCS_FILES_CHANGED: ${{ steps.docs_changed.outputs.any_changed }}
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
submodules: 'recursive'
- name: Check that docs changed
# steps.docs_changed.outputs.any_changed
- name: Check whether docs sources changed
id: docs_changed
uses: tj-actions/changed-files@9426d40962ed5378910ee2e21d5f8c6fcbf2dd96 # v47.0.6
with:
files: |
docs/**
mkdocs.yml
deploy:
name: "Build and publish MkDocs site"
needs: [ check_docs_files_change ]
if: needs.check_docs_files_change.outputs.DOCS_FILES_CHANGED == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up Python 3
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: 3.x
- run: pip install mkdocs-material
- run: pip install mkdocs-minify-plugin
- run: mkdocs gh-deploy --force
- name: Install mkdocs-material
run: pip install mkdocs-material
- name: Install mkdocs-minify-plugin
run: pip install mkdocs-minify-plugin
- name: Build and push site to gh-pages
run: mkdocs gh-deploy --force
50 changes: 28 additions & 22 deletions .github/workflows/call-release.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: "Release version"
name: "Publish release"
on:
workflow_call:
secrets:
Expand All @@ -12,10 +12,13 @@ on:
required: true
ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYPASSWORD:
required: true
# Optional PAT used to create the GitHub release. Falls back to GITHUB_TOKEN when unset.
ACTIONS_TOKEN:
required: false

jobs:
publish:
name: "Publish on MavenCentral"
name: "Publish to Maven Central"
runs-on: ubuntu-latest
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALUSERNAME }}
Expand All @@ -24,41 +27,44 @@ jobs:
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYID }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYPASSWORD }}
steps:
- uses: actions/checkout@v6
- name: Set up JDK 1.17
uses: actions/setup-java@v5
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up JDK 21
uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0
with:
distribution: 'temurin'
java-version: '17'
- name: Give gradle permission
java-version: '21'
- name: Make gradlew executable
run: chmod +x gradlew
- name: Run publish
uses: gradle/gradle-build-action@v3
- name: Publish and release to Maven Central
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3
with:
arguments: :build-logic:convention:publishAllPublicationsToMavenCentralRepository :build-logic:property:publishAllPublicationsToMavenCentralRepository --stacktrace
arguments: publishToMavenCentral --stacktrace
release:
needs: [ publish ]
name: Create GitHub release
name: "Create GitHub release"
runs-on: ubuntu-latest
# Only for personal repositories
permissions:
contents: write
steps:
- uses: actions/checkout@v6
# steps.properties.outputs.project-version-string
# steps.properties.outputs.project-name
- uses: christian-draeger/read-properties@1.1.1
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
# steps.properties.outputs.klibs-project-name
# steps.properties.outputs.klibs-project-version-string
- name: Read project name and version from gradle.properties
uses: christian-draeger/read-properties@908f99d3334be3802ec7cb528395a69d19914e7b # 1.1.1
id: properties
with:
path: './build-logic/gradle.properties'
properties: 'project.name project.version.string'
- name: Create Release
path: './gradle.properties'
properties: 'klibs.project.name klibs.project.version.string'
- name: Create GitHub release
id: create_release
uses: softprops/action-gh-release@v3
uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
env:
GITHUB_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
GITHUB_TOKEN: ${{ secrets.ACTIONS_TOKEN || github.token }}
with:
tag_name: ${{ steps.properties.outputs.project-version-string }}
name: ${{ steps.properties.outputs.project-name }} - ${{ steps.properties.outputs.project-version-string }}
tag_name: ${{ steps.properties.outputs.klibs-project-version-string }}
name: ${{ steps.properties.outputs.klibs-project-name }} - ${{ steps.properties.outputs.klibs-project-version-string }}
draft: false
prerelease: false
22 changes: 12 additions & 10 deletions .github/workflows/call-tests-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,22 @@ jobs:
tests:
strategy:
matrix:
target:
- "test"
name: "Run tests"
include:
- platform: "macos-latest"
task: "allTests"
name: "Run multiplatform tests"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up JDK 1.17
uses: actions/setup-java@v5
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Set up JDK 21
uses: actions/setup-java@03ad4de0992f5dab5e18fcb136590ce7c4a0ac95 # v5.6.0
with:
distribution: 'temurin'
java-version: '17'
- name: Give gradle permission
java-version: '21'
- name: Make gradlew executable
run: chmod +x gradlew
- name: Run tests
uses: gradle/gradle-build-action@v3
uses: gradle/gradle-build-action@ac2d340dc04d9e1113182899e983b5400c17cda1 # v3
with:
arguments: ${{ matrix.target }} --stacktrace
arguments: ${{ matrix.target }} --stacktrace
15 changes: 8 additions & 7 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Pull request
name: Pull request checks
on:
pull_request:
branches:
Expand All @@ -22,17 +22,18 @@ concurrency:

jobs:
gradle_validation:
name: Validate gradle wrapper
name: Validate Gradle wrapper
uses: ./.github/workflows/call-gradle-wrapper-validation.yml
detekt_validation:
name: Check by detekt
name: Detekt static analysis
needs: gradle_validation
uses: ./.github/workflows/call-detekt-validation.yml
# tests_validation:
# needs: gradle_validation
# uses: ./.github/workflows/call-tests-validation.yml
tests_validation:
name: Tests
needs: gradle_validation
uses: ./.github/workflows/call-tests-validation.yml
publish_validation:
name: Check publish
name: Validate publication
needs: gradle_validation
uses: ./.github/workflows/call-publish-validation.yml
secrets:
Expand Down
26 changes: 19 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,32 @@ on:
branches:
- master
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{github.ref_name}}-${{github.repository}}
cancel-in-progress: false

jobs:
gradle_validation:
name: Validate gradle wrapper
name: Validate Gradle wrapper
uses: ./.github/workflows/call-gradle-wrapper-validation.yml
mkdocs:
name: Deploy MkDocs
uses: ./.github/workflows/call-release-mkdocs.yml
release:
name: Release
name: Publish release
needs: gradle_validation
uses: ./.github/workflows/call-release.yml
secrets:
ORG_GRADLE_PROJECT_MAVENCENTRALUSERNAME: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALUSERNAME }}
ORG_GRADLE_PROJECT_MAVENCENTRALPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_mavenCentralPassword }}
ORG_GRADLE_PROJECT_MAVENCENTRALPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_MAVENCENTRALPASSWORD }}
ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEY }}
ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYID: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYID }}
ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYPASSWORD }}
ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYPASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNINGINMEMORYKEYPASSWORD }}
ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
documentation:
name: Deploy MkDocs site
needs: release
uses: ./.github/workflows/call-release-mkdocs.yml
permissions:
contents: write
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,6 @@ Your root `build.gradle.kts`
plugins {
// klibs - core
alias(libs.plugins.klibs.gradle.detekt) apply false
alias(libs.plugins.klibs.gradle.dokka.module) apply false
alias(libs.plugins.klibs.gradle.dokka.root) apply false
alias(libs.plugins.klibs.gradle.java.version) apply false
alias(libs.plugins.klibs.gradle.java.utf8) apply false
Expand Down
Loading
Loading