chore: autoformat CHANGELOG.md and document latest change #93
This file contains hidden or 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_checks" | |
on: | |
pull_request: null | |
push: | |
branches: | |
- "main" | |
workflow_dispatch: | |
inputs: | |
force_gradle_cache_clean: | |
description: "Force gradle cache clean" | |
required: false | |
default: "false" | |
concurrency: | |
group: "${{ github.workflow }}-${{ github.ref }}" | |
cancel-in-progress: true | |
jobs: | |
gradleCheck: | |
name: "run checks using gradlew" | |
runs-on: "ubuntu-latest" | |
outputs: | |
RELEASE_VERSION: ${{ steps.get_version.outputs.VERSION }} | |
env: | |
SEGMENT_DOWNLOAD_TIMEOUT_MINS: "15" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v4" | |
with: | |
fetch-depth: 0 | |
- name: "Install JDK 21" | |
uses: "actions/setup-java@v4" | |
with: | |
distribution: "graalvm" | |
java-version: 21 | |
- name: "Install Node.js" | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "lts/jod" # 22 | |
- name: "debug node" | |
run: "node --version && npm --version" | |
- name: "Setup Gradle" | |
uses: "gradle/actions/setup-gradle@v4" | |
with: | |
cache-read-only: ${{ github.ref != 'refs/heads/main' }} | |
- name: "Nuke gradle cache" | |
if: "${{ github.event.inputs.force_gradle_cache_clean == 'true' }}" | |
run: "rm -rf ~/.gradle/caches" | |
- name: "Run check on build-logic subproject" | |
run: "./gradlew :build-logic:check --no-configuration-cache" | |
- name: "Run check on project" | |
run: "./gradlew generateUsage && ./gradlew check" | |
- name: "Get version and set to output" | |
id: get_version | |
run: echo "VERSION=$(./gradlew changelogPrintCurrentVersion --quiet)" >> "$GITHUB_OUTPUT" | |
- name: "junit result" | |
uses: "mikepenz/action-junit-report@v5" | |
if: "always()" | |
with: | |
check_name: "JUnit Report" | |
report_paths: "**/build/test-results/tes*/*.xml" # multiple test tasks | |
nativeCompile: | |
name: "${{ matrix.platform.name }} nativeCompile testing" | |
needs: "gradleCheck" | |
strategy: | |
matrix: | |
platform: | |
- name: "linux-x86_64" | |
runner: "ubuntu-latest" | |
- name: "linux-aarch_64" | |
runner: "ubuntu-24.04-arm" | |
- name: "windows-x86_64" | |
runner: "windows-latest" | |
- name: "osx-aarch_64" | |
runner: "macos-latest" | |
- name: "osx-x86_64" | |
runner: "macos-13" | |
fail-fast: false | |
runs-on: "${{ matrix.platform.runner }}" | |
env: | |
SEGMENT_DOWNLOAD_TIMEOUT_MINS: "15" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v4" | |
with: | |
fetch-depth: 0 | |
- name: "Install JDK 21" | |
uses: "actions/setup-java@v4" | |
with: | |
distribution: "graalvm" | |
java-version: 21 | |
- name: "Install Node.js" | |
uses: actions/setup-node@v4 | |
with: | |
node-version: "lts/jod" # 22 | |
- name: "Setup Gradle" | |
uses: "gradle/actions/setup-gradle@v4" | |
with: | |
cache-read-only: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/initial-version' }} # TODO remove when initial-version is removed | |
- name: "Check if binary works" | |
run: "./gradlew testAllCliNative" | |
- name: "junit result" | |
uses: "mikepenz/action-junit-report@v5" | |
if: "always()" | |
with: | |
check_name: "JUnit Report ${{ matrix.platform.name }}" | |
report_paths: "**/build/test-results/tes*/*.xml" # multiple test tasks | |
- name: "upload binary" # for debugging | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "spotless-native-binary--${{ matrix.platform.name }}" | |
path: app/build/native/nativeCompile/spotless* | |
retention-days: 7 | |
if-no-files-found: "error" | |
dryRunRelease: | |
name: "dry run release" | |
needs: ["gradleCheck", "nativeCompile"] | |
strategy: | |
matrix: | |
platform: | |
- name: "linux-x86_64" | |
runner: "ubuntu-latest" | |
- name: "windows-x86_64" | |
runner: "windows-latest" | |
runs-on: "${{ matrix.platform.runner }}" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v4" | |
with: | |
fetch-depth: 0 | |
- name: "Install JDK 21" | |
uses: "actions/setup-java@v4" | |
with: | |
distribution: "graalvm" | |
java-version: 21 | |
- name: "Setup Gradle" | |
uses: "gradle/actions/setup-gradle@v4" | |
- name: "Retrieve binaries" | |
uses: "actions/download-artifact@v4" | |
with: | |
# no name - download all artifacts | |
path: "app/build/collected-binaries" | |
- name: "Make sure downloaded binaries are executable" | |
if: "${{ matrix.platform.name == 'linux-x86_64' }}" | |
run: | | |
find app/build/collected-binaries -type f -name "spotless*" -exec chmod +x {} \; | |
- name: "Prepare release zips for distribution" | |
run: "./gradlew -PreleaseBinariesRootDir=app/build/collected-binaries prepareReleaseBinaryZips" | |
- name: "Prepare jreleaser for distribution" | |
run: "./gradlew prepareJReleaserConfig" | |
env: | |
JRELEASER_CHOCOLATEY_USER: ${{ secrets.CHOCO_USER }} #manually extracted in jreleaser.yml | |
- name: "Dry-run choco distribution" | |
if: "${{ matrix.platform.name == 'windows-x86_64' }}" | |
uses: jreleaser/release-action@v2 | |
with: | |
setup-java: false | |
arguments: "publish --dry-run" | |
env: | |
JRELEASER_PROJECT_VERSION: ${{ needs.gradleCheck.outputs.RELEASE_VERSION }} | |
JRELEASER_GITHUB_TOKEN: abc # don't provide correct token, just a dry-run | |
JRELEASER_DISTRIBUTIONS_SPOTLESS_CLI_CHOCOLATEY_ACTIVE: ALWAYS | |
JRELEASER_CHOCOLATEY_GITHUB_TOKEN: abc # don't provide correct token, just a dry-run | |
JRELEASER_CHOCOLATEY_USER: abc # don't provide correct token, just a dry-run | |
JRELEASER_CHOCOLATEY_API_KEY: abc # don't provide correct token, just a dry-run | |
- name: "Dry-run brew distribution" | |
if: "${{ matrix.platform.name == 'linux-x86_64' }}" | |
uses: jreleaser/release-action@v2 | |
with: | |
setup-java: false | |
arguments: "publish --dry-run" | |
env: | |
JRELEASER_PROJECT_VERSION: ${{ needs.gradleCheck.outputs.RELEASE_VERSION }} | |
JRELEASER_GITHUB_TOKEN: abc # don't provide correct token, just a dry-run | |
JRELEASER_DISTRIBUTIONS_SPOTLESS_CLI_BREW_ACTIVE: ALWAYS | |
JRELEASER_HOMEBREW_GITHUB_TOKEN: abc # don't provide correct token, just a dry-run | |
- name: "Persist jreleaser output" | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "jreleaser-distribution-dry-run--${{ matrix.platform.name }}" | |
path: | | |
out/jreleaser/trace.log | |
out/jreleaser/output.properties | |
out/jreleaser/package/spotless-cli/** |