diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml new file mode 100644 index 0000000..e5d372c --- /dev/null +++ b/.github/workflows/gradle.yml @@ -0,0 +1,45 @@ +name: Gradle Check + +on: + push: + branches: + - main + pull_request: + +jobs: + check: + strategy: + matrix: + os: [ ubuntu-latest, macOS-latest ] + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + - uses: gradle/actions/wrapper-validation@v3 + + - uses: oracle-actions/setup-java@v1 + if: ${{ vars.GRADLE_JAVA_VERSION != vars.JAVA_VERSION }} + with: + website: jdk.java.net + release: ${{ vars.GRADLE_JAVA_VERSION }} + + - run: | + printf "org.gradle.java.home=%s" "$JAVA_HOME" > gradle.properties + java --version + if: ${{ vars.GRADLE_JAVA_VERSION != vars.JAVA_VERSION }} + + - uses: oracle-actions/setup-java@v1 + with: + website: jdk.java.net + release: ${{ vars.JAVA_VERSION }} + + - run: printf "org.gradle.java.home=%s" "$JAVA_HOME" > gradle.properties + if: ${{ vars.GRADLE_JAVA_VERSION == vars.JAVA_VERSION }} + + - name: Gradle Check + run: | + printf "\norg.gradle.java.installations.paths=%s" "$JAVA_HOME" >> gradle.properties + java --version + ./gradlew -PtargetJava=${{ vars.JAVA_VERSION }} check --stacktrace --no-daemon + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..d334af5 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,45 @@ +name: Publish Release + +on: + create: + tags: + - '\d+\.\d+\.\d+' + +jobs: + publish: + runs-on: ubuntu-latest + + permissions: + contents: read + packages: write + + steps: + - uses: actions/checkout@v4 + - uses: gradle/actions/wrapper-validation@v3 + + - uses: oracle-actions/setup-java@v1 + if: ${{ vars.GRADLE_JAVA_VERSION != vars.JAVA_VERSION }} + with: + website: jdk.java.net + release: ${{ vars.GRADLE_JAVA_VERSION }} + + - run: | + printf "org.gradle.java.home=%s" "$JAVA_HOME" > gradle.properties + java --version + if: ${{ vars.GRADLE_JAVA_VERSION != vars.JAVA_VERSION }} + + - uses: oracle-actions/setup-java@v1 + with: + website: jdk.java.net + release: ${{ vars.JAVA_VERSION }} + + - run: printf "org.gradle.java.home=%s" "$JAVA_HOME" > gradle.properties + if: ${{ vars.GRADLE_JAVA_VERSION == vars.JAVA_VERSION }} + + - name: Github Packages + run: | + printf "\norg.gradle.java.installations.paths=%s" "$JAVA_HOME" >> gradle.properties + java --version + ./gradlew --stacktrace -PtargetJava=${{ vars.JAVA_VERSION }} check :google_kms:publish + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/build.gradle b/build.gradle index a5e90bc..6f16227 100644 --- a/build.gradle +++ b/build.gradle @@ -1,48 +1,37 @@ -buildscript { - repositories { - maven { url = 'https://plugins.gradle.org/m2/' } - mavenCentral() +def getAppVersionUnchecked = { -> + if (project.hasProperty("noVersionTag")) { + return '' } - dependencies { - // https://plugins.gradle.org/plugin/org.beryx.jlink - classpath "org.beryx:badass-jlink-plugin:3.1.1" + try (final var gitTagOut = new ByteArrayOutputStream()) { + exec { + commandLine 'git', 'tag', '--points-at', 'HEAD' + standardOutput = gitTagOut + } + final var tagName = gitTagOut.toString().strip() + if (tagName.isBlank()) { + try (final var gitHashOut = new ByteArrayOutputStream()) { + exec { + commandLine 'git', 'rev-parse', '--short', 'HEAD' + standardOutput = gitHashOut + } + return 'git-' + gitHashOut.toString().strip() + } + } else { + return tagName + } } -} +} as Object -//def getAppVersionUnchecked = { -> -// if (project.hasProperty("noVersionTag")) { -// return '' -// } -// try (final var gitTagOut = new ByteArrayOutputStream()) { -// exec { -// commandLine 'git', 'tag', '--points-at', 'HEAD' -// standardOutput = gitTagOut -// } -// final var tagName = gitTagOut.toString().strip() -// if (tagName.isBlank()) { -// try (final var gitHashOut = new ByteArrayOutputStream()) { -// exec { -// commandLine 'git', 'rev-parse', '--short', 'HEAD' -// standardOutput = gitHashOut -// } -// return 'git-' + gitHashOut.toString().strip() -// } -// } else { -// return tagName -// } -// } -//} as Object -// -//def getAppVersion = { -> -// if (project.hasProperty("noVersionTag")) { -// return '' -// } -// return getAppVersionUnchecked() -//} as Object +def getAppVersion = { -> + if (project.hasProperty("noVersionTag")) { + return '' + } + return getAppVersionUnchecked() +} as Object ext { - VERSION = '' // getAppVersion() + VERSION = getAppVersion() VCS_URL = 'https://github.com/sava-software/kms' }