Skip to content

Commit cf2f5da

Browse files
committed
Add initial CI workflow
* Will build and publish snapshot to Artifactory on push to main
1 parent 100e3f3 commit cf2f5da

File tree

5 files changed

+102
-9
lines changed

5 files changed

+102
-9
lines changed

.github/workflows/ci-pr.yml

+19-4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ on:
44
pull_request:
55
branches: [ main ]
66

7+
env:
8+
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
9+
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
10+
711
jobs:
812
build:
913
if: github.repository == 'spring-projects-experimental/spring-pulsar'
@@ -15,11 +19,22 @@ jobs:
1519
uses: actions/setup-java@v2
1620
with:
1721
java-version: 17
18-
distribution: 'temurin'
19-
- name: Run Gradle build
22+
distribution: temurin
23+
- name: Setup Gradle user name
24+
run: |
25+
mkdir -p ~/.gradle
26+
echo 'systemProp.user.name=spring-builds+github' >> ~/.gradle/gradle.properties
27+
- name: Setup Gradle
2028
uses: gradle/gradle-build-action@v2
21-
with:
22-
arguments: clean build
29+
env:
30+
GRADLE_USER_HOME: ~/.gradle
31+
- name: Run Gradle build
32+
# env:
33+
# GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
34+
# GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
35+
# GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
36+
run: |
37+
./gradlew clean build -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD"
2338
- name: Capture Test Results
2439
if: failure()
2540
uses: actions/upload-artifact@v3

.github/workflows/ci.yml

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths-ignore:
8+
- '.github/**'
9+
workflow_dispatch:
10+
11+
env:
12+
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
13+
# GRADLE_ENTERPRISE_CACHE_USER: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
14+
# GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
15+
# GRADLE_ENTERPRISE_SECRET_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
16+
COMMIT_OWNER: ${{ github.event.pusher.name }}
17+
COMMIT_SHA: ${{ github.sha }}
18+
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
19+
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
20+
21+
jobs:
22+
build:
23+
if: github.repository == 'spring-projects-experimental/spring-pulsar'
24+
runs-on: ubuntu-latest
25+
steps:
26+
- name: Checkout repo
27+
uses: actions/checkout@v2
28+
- name: Set up Java 17
29+
uses: actions/setup-java@v2
30+
with:
31+
java-version: 17
32+
distribution: temurin
33+
- name: Setup Gradle user name
34+
run: |
35+
mkdir -p ~/.gradle
36+
echo 'systemProp.user.name=spring-builds+github' >> ~/.gradle/gradle.properties
37+
- name: Setup Gradle
38+
uses: gradle/gradle-build-action@v2
39+
env:
40+
GRADLE_USER_HOME: ~/.gradle
41+
- name: Run Gradle build
42+
# env:
43+
# GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
44+
# GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
45+
# GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
46+
run: |
47+
./gradlew clean build --refresh-dependencies --stacktrace -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD"
48+
- name: Deploy artifacts
49+
# env:
50+
# GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
51+
# GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
52+
# GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
53+
run: |
54+
./gradlew artifactoryPublish --stacktrace -PartifactoryUsername="$ARTIFACTORY_USERNAME" -PartifactoryPassword="$ARTIFACTORY_PASSWORD"

build.gradle

+16-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ allprojects {
109109
subprojects { subproject ->
110110
apply plugin: 'java-library'
111111
apply plugin: 'java'
112-
apply from: "${rootProject.projectDir}/publish-maven.gradle"
112+
apply from: "${rootProject.projectDir}/gradle/publish-artifactory.gradle"
113113
apply plugin: 'eclipse'
114114
apply plugin: 'idea'
115115
apply plugin: 'jacoco'
@@ -361,4 +361,19 @@ sonarqube {
361361
}
362362
}
363363

364+
// skip publishing the root module
365+
artifactoryPublish.skip = true
364366

367+
artifactory {
368+
contextUrl = 'https://repo.spring.io'
369+
publish {
370+
repository {
371+
repoKey = 'libs-snapshot-local'
372+
username = "${artifactoryUsername}"
373+
password = "${artifactoryPassword}"
374+
}
375+
defaults {
376+
publications('mavenJava')
377+
}
378+
}
379+
}

publish-maven.gradle gradle/publish-artifactory.gradle

+12-3
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,18 @@ publishing {
2626
connection = linkScmConnection
2727
developerConnection = linkScmDevConnection
2828
}
29-
// developers {
30-
//
31-
// }
29+
developers {
30+
developer {
31+
id = "schacko"
32+
name = "Soby Chacko"
33+
email = "chackos@vmware.com"
34+
}
35+
developer {
36+
id = "onobc"
37+
name = "Chris Bono"
38+
email = "cbono@vmware.com"
39+
}
40+
}
3241
issueManagement {
3342
system = 'GitHub'
3443
url = linkIssue

settings.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ pluginManagement {
66
}
77

88
plugins {
9-
id 'com.gradle.enterprise' version '3.5'
9+
id "com.gradle.enterprise" version "3.5"
1010
id "io.spring.ge.conventions" version "0.0.7"
1111
}
1212

0 commit comments

Comments
 (0)