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
66 changes: 66 additions & 0 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: CD Build
on:
push:
tags:
- "*"
workflow_dispatch:

env:
ORG_GRADLE_PROJECT_qhrArtifactoryUsername: "${{ vars.ARTIFACTORY_IDENTITY_TOKEN_USER }}"
ORG_GRADLE_PROJECT_qhrArtifactoryPassword: "${{ secrets.ARTIFACTORY_IDENTITY_TOKEN }}"

JAVA_VERSION: "17"
JAVA_DISTRIBUTION: "zulu"

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

jobs:
publish:
name: Build and Publish
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: '0'
ssh-key: "${{ secrets.SSH_KEY_GITHUB }}"

- name: 'Inform Gradle of CI Tag Build'
if: ${{ github.ref_type == 'tag' }}
run: |
echo "ORG_GRADLE_PROJECT_ciTag=true" >> $GITHUB_ENV
echo "TARGET_REPO=qhr-local-maven-gradle-plugins-secure-release" >> $GITHUB_ENV

- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.JAVA_DISTRIBUTION }}

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

- name: Config JFrog CLI
uses: jfrog/setup-jfrog-cli@v4
env:
JF_ENV_1: ${{ secrets.ARTIFACTORY_CLI_CONFIG }}

- name: Gather Artifactory Build Info
run: |
export JFROG_CLI_BUILD_NAME="Gradle Convention Plugins"
export JFROG_CLI_BUILD_NUMBER="${{ github.ref_name }}"
echo "JFROG_CLI_BUILD_NAME=${JFROG_CLI_BUILD_NAME}" >> $GITHUB_ENV
echo "JFROG_CLI_BUILD_NUMBER=${JFROG_CLI_BUILD_NUMBER}" >> $GITHUB_ENV
jfrog rt build-collect-env
jfrog rt build-add-git

- name: Publish Packages to Artifactory
run: |
jfrog gradle-config --use-wrapper=true --uses-plugin=true --deploy-maven-desc=true --deploy-ivy-desc=false \
--repo-deploy ${TARGET_REPO:=qhr-local-maven-gradle-plugins-secure-snapshot}
jfrog gradle artifactoryPublish

- name: Publish Artifactory Build
run: |
jfrog rt build-publish
44 changes: 44 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: CI Build
on:
pull_request:
push:
branches:
- main
workflow_dispatch:

env:
ORG_GRADLE_PROJECT_qhrArtifactoryUsername: "${{ vars.ARTIFACTORY_IDENTITY_TOKEN_USER }}"
ORG_GRADLE_PROJECT_qhrArtifactoryPassword: "${{ secrets.ARTIFACTORY_IDENTITY_TOKEN }}"

JAVA_VERSION: "17"
JAVA_DISTRIBUTION: "zulu"

concurrency:
group: "ci-${{ github.ref }}"
cancel-in-progress: true

jobs:
compile:
name: Build and Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: '0'
ssh-key: "${{ secrets.SSH_KEY_GITHUB }}"

- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.JAVA_DISTRIBUTION }}

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4

- name: Build
run: ./gradlew assemble testClasses

- name: Submit Gradle Dependency Graph
if: ${{ github.ref_name == 'main' }}
uses: gradle/actions/dependency-submission@v4
58 changes: 58 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Release
on:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

env:
ORG_GRADLE_PROJECT_qhrArtifactoryUsername: "${{ vars.ARTIFACTORY_IDENTITY_TOKEN_USER }}"
ORG_GRADLE_PROJECT_qhrArtifactoryPassword: "${{ secrets.ARTIFACTORY_IDENTITY_TOKEN }}"

JAVA_VERSION: "17"
JAVA_DISTRIBUTION: "zulu"

jobs:
release:
name: Make Release
runs-on: ubuntu-latest
outputs:
releasedTag: ${{ steps.release.outputs.releasedTag }}
steps:
- name: 'Checkout Repository'
uses: actions/checkout@v4
with:
fetch-depth: '0'
persist-credentials: true
ssh-key: "${{ secrets.SSH_KEY_GITHUB }}"
- name: Configure NPM Auth
run: |
ARTIFACTORY_BASE64=$(echo -n "${{ vars.ARTIFACTORY_IDENTITY_TOKEN_USER }}:${{ secrets.ARTIFACTORY_IDENTITY_TOKEN }}" | base64 -w0)
REGISTRY="https://qhrtech.jfrog.io/artifactory/api/npm/qhr-npm-group/"

# Extract the hostname from the registry URL.
REGISTRY_HOSTNAME=`echo "$REGISTRY" | sed -Ee "s|^https?://([^/:]+).*?|\1|"`

npm config set registry $REGISTRY

npm config set "//${REGISTRY_HOSTNAME}/:_auth" "$ARTIFACTORY_BASE64"

- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.JAVA_DISTRIBUTION }}

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
# Since this only uses a sub-set of the gradle tasks, don't use it to generate a cache only
# read the cache of another pipeline.
cache-read-only: true

- name: Release
id: release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./gradlew semanticRelease
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,8 @@ buildNumber.properties
*~
.idea
*.iml
/build/
/.gradle/
/node_modules/
/package.json
/package-lock.json
40 changes: 40 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@

plugins {
alias(libs.plugins.qhr.base)
alias(libs.plugins.qhr.library)
alias(libs.plugins.qhr.semanticRelease)
}

dependencies { api(libs.checkstyle) }

group = "com.qhrtech.medeo"

description = "Medeo Checkstyle Rules"

semanticRelease {
tagFormat.set("checkstyle-rules-\${version}")
}

java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

tasks.withType<JavaCompile>() { options.encoding = "UTF-8" }

tasks.withType<Javadoc>() { options.encoding = "UTF-8" }

val generateResourcesTask =
tasks.register("generateResources", Sync::class) {
destinationDir = file("$projectDir/build/resources/generated")

from(
fileTree(project.projectDir) {
include("checkstyle-*.xml")
include("eclipse-*.xml")
include("intellij_*.xml")
}
)
}

sourceSets { main { output.dir(generateResourcesTask) } }
Loading