Skip to content

Commit

Permalink
Add check-samples step in CI (#467)
Browse files Browse the repository at this point in the history
See #450
  • Loading branch information
onobc committed Oct 5, 2023
1 parent 4919f3e commit b64a711
Show file tree
Hide file tree
Showing 15 changed files with 420 additions and 219 deletions.
57 changes: 57 additions & 0 deletions .github/workflows/check-samples.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: Check Samples

on:
workflow_dispatch:

env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
GRADLE_ENTERPRISE_CACHE_USER: ${{ secrets.GRADLE_ENTERPRISE_CACHE_USER }}
GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GRADLE_ENTERPRISE_CACHE_PASSWORD }}
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_SECRET_ACCESS_KEY }}
COMMIT_OWNER: ${{ github.event.pusher.name }}
COMMIT_SHA: ${{ github.sha }}
ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}

jobs:
prerequisites:
name: Pre-requisites for building
runs-on: ubuntu-latest
if: github.repository == 'spring-projects/spring-pulsar'
outputs:
runjobs: ${{ steps.continue.outputs.runjobs }}
project_version: ${{ steps.continue.outputs.project_version }}
steps:
- uses: actions/checkout@v3
- id: continue
name: Determine if should continue
run: |
# Run jobs if in upstream repository
echo "runjobs=true" >>$GITHUB_OUTPUT
# Extract version from gradle.properties
version=$(cat gradle.properties | grep "version=" | awk -F'=' '{print $2}')
echo "project_version=$version" >>$GITHUB_OUTPUT
check_samples:
name: Check Samples project
needs: [prerequisites]
runs-on: ubuntu-latest
if: needs.prerequisites.outputs.runjobs
steps:
- uses: actions/checkout@v3
- name: Set up gradle
uses: spring-io/spring-gradle-build-action@v2
with:
java-version: 17
distribution: temurin
- name: Check samples project
env:
LOCAL_REPOSITORY_PATH: ${{ github.workspace }}/build/publications/repos
SAMPLES_DIR:
VERSION: ${{ needs.prerequisites.outputs.project_version }}
run: |
./gradlew publishMavenJavaPublicationToLocalRepository
./gradlew \
--init-script ./spring-pulsar-sample-apps/sample-apps-check-ci.gradle \
-PlocalRepositoryPath="$LOCAL_REPOSITORY_PATH" \
-PspringPulsarVersion="$VERSION" \
:runAllSampleTests
24 changes: 24 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,30 @@ jobs:
context-root: spring-pulsar
cloudflare-zone-id: ${{ secrets.CLOUDFLARE_ZONE_ID }}
cloudflare-cache-token: ${{ secrets.CLOUDFLARE_CACHE_TOKEN }}
check_samples:
name: Check Samples project
needs: [prerequisites]
runs-on: ubuntu-latest
if: needs.prerequisites.outputs.runjobs
steps:
- uses: actions/checkout@v3
- name: Set up gradle
uses: spring-io/spring-gradle-build-action@v2
with:
java-version: 17
distribution: temurin
- name: Check samples project
env:
LOCAL_REPOSITORY_PATH: ${{ github.workspace }}/build/publications/repos
SAMPLES_DIR:
VERSION: ${{ needs.prerequisites.outputs.project_version }}
run: |
./gradlew publishMavenJavaPublicationToLocalRepository
./gradlew \
--init-script ./spring-pulsar-sample-apps/sample-apps-check-ci.gradle \
-PlocalRepositoryPath="$LOCAL_REPOSITORY_PATH" \
-PspringPulsarVersion="$VERSION" \
:runAllSampleTests
perform_release:
name: Perform Release
needs: [prerequisites, build_deploy_jdk_17, deploy_docs_antora]
Expand Down
11 changes: 11 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -42,3 +42,14 @@ nohttp {
check {
dependsOn checkstyleNohttp
}

tasks.register('runAllSampleTests') {
var allTasks = rootProject.getAllTasks(true)
.findAll {it.key.project.name.startsWith("sample-") }
var allTestsTasks = allTasks.values().collect { t ->
t.findAll { it.name == 'test' || it.name == 'integrationTest' }
}.flatten()
it.dependsOn {
allTestsTasks
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public void apply(final Project project) {
project.getPlugins().withType(JavaPlugin.class, (javaPlugin) -> {
project.getPluginManager().apply(JacocoPlugin.class);
project.getExtensions().configure(JacocoPluginExtension.class,
(jacocoExtension) -> jacocoExtension.setToolVersion("0.8.7"));
(jacocoExtension) -> jacocoExtension.setToolVersion("0.8.9"));
project.getTasks().withType(Test.class, (test) ->
project.getTasks().withType(JacocoReport.class, test::finalizedBy));
});
Expand Down
5 changes: 3 additions & 2 deletions gradle/aggregate-jacoco-report.gradle
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
apply plugin: 'jacoco'

jacoco {
toolVersion '0.8.7'
toolVersion '0.8.9'
}

tasks.withType(Test) {
Expand All @@ -26,8 +26,9 @@ project.afterEvaluate {

def modulesToAggregate = subprojects.findAll { proj ->
def isSampleApp = proj.getParent().getPath().contains('spring-pulsar-sample-apps')
def isTestModule = proj.getName() == 'spring-pulsar-test'
def path = "${proj.projectDir}/src/main/java"
!(isSampleApp) && (new File(path)).exists()
!(isSampleApp) && !(isTestModule) && (new File(path)).exists()
}

def classes = modulesToAggregate.collect {
Expand Down
2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ include 'spring-pulsar-cache-provider'
include 'spring-pulsar-cache-provider-caffeine'
include 'spring-pulsar-reactive'
include 'spring-pulsar-dependencies'
include 'spring-pulsar-sample-apps:sample-app1'
include 'spring-pulsar-sample-apps:sample-imperative-produce-consume'
include 'spring-pulsar-sample-apps:sample-app2'
include 'spring-pulsar-sample-apps:sample-pulsar-functions:sample-signup-app'
include 'spring-pulsar-sample-apps:sample-pulsar-functions:sample-signup-function'
Expand Down

This file was deleted.

This file was deleted.

27 changes: 27 additions & 0 deletions spring-pulsar-sample-apps/sample-apps-check-ci.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
allprojects {
configurations.all {
resolutionStrategy {
force "org.springframework.pulsar:spring-pulsar:$springPulsarVersion"
force "org.springframework.pulsar:spring-pulsar-cache-provider:$springPulsarVersion"
force "org.springframework.pulsar:spring-pulsar-cache-provider-caffeine:$springPulsarVersion"
force "org.springframework.pulsar:spring-pulsar-reactive:$springPulsarVersion"
force "org.springframework.pulsar:spring-pulsar-dependencies:$springPulsarVersion"
}
}
repositories {
exclusiveContent {
forRepository {
maven {
url "file://$localRepositoryPath"
}
}
filter {
includeVersion "org.springframework.pulsar", "spring-pulsar", "$springPulsarVersion"
includeVersion "org.springframework.pulsar", "spring-pulsar-cache-provider", "$springPulsarVersion"
includeVersion "org.springframework.pulsar", "spring-pulsar-cache-provider-caffeine", "$springPulsarVersion"
includeVersion "org.springframework.pulsar", "spring-pulsar-reactive", "$springPulsarVersion"
includeVersion "org.springframework.pulsar", "spring-pulsar-dependencies", "$springPulsarVersion"
}
}
}
}
Loading

0 comments on commit b64a711

Please sign in to comment.