diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3afe917..b20c4a4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,41 +2,47 @@ name: CI on: push: - + workflow_dispatch: env: - ORG_GRADLE_PROJECT_alfresco_nexus_username: ${{ secrets.ALFRESCO_NEXUS_USERNAME }} - ORG_GRADLE_PROJECT_alfresco_nexus_password: ${{ secrets.ALFRESCO_NEXUS_PASSWORD }} - + GRADLE_OPTS: >- + -Dorg.gradle.project.org.alfresco.maven.nexus.username=${{ secrets.ALFRESCO_NEXUS_USERNAME }} + -Dorg.gradle.project.org.alfresco.maven.nexus.password=${{ secrets.ALFRESCO_NEXUS_PASSWORD }} jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v3 with: - fetch-depth: 0 - - uses: actions/setup-java@v1 - with: + distribution: temurin java-version: 11 - name: Test - run: ./gradlew test + uses: gradle/gradle-build-action@v2 + with: + cache-read-only: false + arguments: test - name: Upload analysis to sonarcloud + uses: gradle/gradle-build-action@v2 env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} GITHUB_TOKEN: ${{ github.token }} - run: ./gradlew sonarqube + with: + cache-read-only: false + arguments: sonarqube integration-test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: flavour: [ "community", "enterprise" ] - version: [ "61", "62", "70", "71", "72", "73" ] + version: [ "61", "62", "70", "71", "72", "73","74" ] steps: - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v3 with: - fetch-depth: 0 - - uses: actions/setup-java@v1 - with: + distribution: temurin java-version: 11 - name: Login to Docker env: @@ -45,31 +51,29 @@ jobs: DOCKER_CLOUDSMITH_USER: ${{ secrets.CLOUDSMITH_USER }} DOCKER_CLOUDSMITH_PASSWORD: ${{ secrets.CLOUDSMITH_APIKEY }} run: | - echo "$DOCKER_HUB_PASSWORD" | docker login hub.xenit.eu --username "$DOCKER_HUB_USER" --password-stdin echo "$DOCKER_CLOUDSMITH_PASSWORD" | docker login private.docker.xenit.eu --username "$DOCKER_CLOUDSMITH_USER" --password-stdin - - name: Test - run: ./gradlew :integration-tests:alfresco-${{ matrix.flavour }}-${{ matrix.version }}:integrationTest - env: - ORG_GRADLE_PROJECT_xenit_docker_registry_url: ${{ secrets.XENIT_DOCKER_REGISTRY_URL }} - ORG_GRADLE_PROJECT_xenit_docker_registry_username: ${{ secrets.XENIT_DOCKER_REGISTRY_USERNAME }} - ORG_GRADLE_PROJECT_xenit_docker_registry_password: ${{ secrets.XENIT_DOCKER_REGISTRY_PASSWORD }} + - name: Integration Test + uses: gradle/gradle-build-action@v2 + with: + cache-read-only: false + arguments: :integration-tests:alfresco-${{ matrix.flavour }}-${{ matrix.version }}:integrationTest - name: 'Upload Test Reports' if: success() || failure() uses: actions/upload-artifact@v3 with: - name: test-result + name: test-result-${{ matrix.flavour }}-${{ matrix.version }} path: /home/runner/**/build/reports retention-days: 14 publish: - needs: [test, integration-test] + needs: [ test, integration-test ] runs-on: ubuntu-latest if: ${{ startsWith(github.ref, 'refs/heads/master') || startswith(github.ref, 'refs/heads/release') }} steps: - uses: actions/checkout@v2 + - name: Set up JDK 11 + uses: actions/setup-java@v3 with: - fetch-depth: 0 - - uses: actions/setup-java@v1 - with: + distribution: temurin java-version: 11 - name: Publish env: @@ -77,4 +81,7 @@ jobs: ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.MAVEN_CENTRAL_GPG_PASSWORD }} ORG_GRADLE_PROJECT_sonatype_username: ${{ secrets.MAVEN_CENTRAL_USERNAME }} ORG_GRADLE_PROJECT_sonatype_password: ${{ secrets.MAVEN_CENTRAL_PASSWORD }} - run: ./gradlew publish -PsigningKeyId=CDE3528F \ No newline at end of file + uses: gradle/gradle-build-action@v2 + with: + cache-read-only: false + arguments: publish -PsigningKeyId=CDE3528F \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a0dea7..c8c4076 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,9 @@ Version template: --> # Alfred Telemetry Changelog +## [0.10.0] - 2023-08-31 +### Added +* Added support for alfresco 7.4 [#146] ## [0.9.3] - 2023-01-13 ### Added * Added TomcatMetrics [#142] diff --git a/alfred-telemetry-solr/README.md b/alfred-telemetry-solr/README.md index 7458db4..1e8b5bb 100644 --- a/alfred-telemetry-solr/README.md +++ b/alfred-telemetry-solr/README.md @@ -282,7 +282,7 @@ Restart solr. Following docker images are created following the steps above: - hub.xenit.eu/alfred-telemetry/solr-alfred-telemetry-: + private.docker.xenit.eu/alfred-telemetry/solr-alfred-telemetry-: # How to check that it is working diff --git a/alfred-telemetry-solr/alfred-telemetry-solr6/overload.gradle b/alfred-telemetry-solr/alfred-telemetry-solr6/overload.gradle index 2e22f7a..161660e 100644 --- a/alfred-telemetry-solr/alfred-telemetry-solr6/overload.gradle +++ b/alfred-telemetry-solr/alfred-telemetry-solr6/overload.gradle @@ -1,6 +1,6 @@ ext { solrVersion = '6.6.5' - assVersion = '2.0.1' - solrBaseImage = 'hub.xenit.eu/public/alfresco-solr6:2.0.1' + assVersion = '2.0.6' + solrBaseImage = 'docker.io/xenit/alfresco-solr6:2.0.6' solrFlavor = 'solr6' } diff --git a/alfred-telemetry-solr/build.gradle b/alfred-telemetry-solr/build.gradle index 32def1b..eb91e9d 100644 --- a/alfred-telemetry-solr/build.gradle +++ b/alfred-telemetry-solr/build.gradle @@ -56,7 +56,7 @@ subprojects { dockerFile { dockerFile = createDockerFile.getDestFile() dockerBuild { - repository = "hub.xenit.eu/alfred-telemetry/solr-alfred-telemetry-${solrFlavor}" + repository = "private.docker.xenit.eu/alfred-telemetry/solr-alfred-telemetry-${solrFlavor}" automaticTags = false tags = ["${version}"] } diff --git a/build.gradle b/build.gradle index 2ad72de..42ff4b6 100644 --- a/build.gradle +++ b/build.gradle @@ -12,15 +12,10 @@ sonarqube { } } -def copyPropertyValueIfExists(sourcePropertyName, targetPropertyName) { - if (project.hasProperty(sourcePropertyName)) { - project.ext[targetPropertyName] = project.property(sourcePropertyName) - } -} allprojects { group = 'eu.xenit.alfred.telemetry' - version = '0.9.3' + version = '0.10.0' apply plugin: 'java' apply plugin: 'jacoco' @@ -50,13 +45,6 @@ allprojects { restAssuredVersion = '4.0.0' } - // It is not possible to set properties with a dot via GitHub Actions env variables, therefore we introduce support - // for a non-dotted-equivalent - copyPropertyValueIfExists('alfresco_nexus_username', 'org.alfresco.maven.nexus.username') - copyPropertyValueIfExists('alfresco_nexus_password', 'org.alfresco.maven.nexus.password') - copyPropertyValueIfExists('xenit_docker_registry_url', 'eu.xenit.docker.registry.url') - copyPropertyValueIfExists('xenit_docker_registry_username', 'eu.xenit.docker.registry.username') - copyPropertyValueIfExists('xenit_docker_registry_password', 'eu.xenit.docker.registry.password') repositories { mavenCentral() diff --git a/integration-tests/alfresco-community-74/overload.gradle b/integration-tests/alfresco-community-74/overload.gradle new file mode 100644 index 0000000..f7d768e --- /dev/null +++ b/integration-tests/alfresco-community-74/overload.gradle @@ -0,0 +1,17 @@ +ext { + alfrescoBaseWarBom = 'org.alfresco:acs-community-packaging:7.4.0' + alfrescoBaseWar = 'org.alfresco:content-services-community@war' + alfrescoBaseImage = 'xenit/alfresco-repository-community:7.4.0' + solrFlavor = 'solr6' + +// postgresImage = 'postgres:13' + + extraDependencies = [ + "io.micrometer:micrometer-core:${micrometerVersion}", + "io.github.mweirauch:micrometer-jvm-extras:${jvmExtrasVersion}", + + "io.micrometer:micrometer-registry-graphite:${micrometerVersion}", + "io.micrometer:micrometer-registry-jmx:${micrometerVersion}", + "io.micrometer:micrometer-registry-prometheus:${micrometerVersion}" + ] +} \ No newline at end of file diff --git a/integration-tests/alfresco-enterprise-74/overload.gradle b/integration-tests/alfresco-enterprise-74/overload.gradle new file mode 100644 index 0000000..85958d9 --- /dev/null +++ b/integration-tests/alfresco-enterprise-74/overload.gradle @@ -0,0 +1,8 @@ +ext { + alfrescoBaseWarBom = 'org.alfresco:acs-packaging:7.4.0.1' + alfrescoBaseWar = 'org.alfresco:content-services@war' + + alfrescoBaseImage = 'private.docker.xenit.eu/alfresco-enterprise/alfresco-repository-enterprise:7.4.0.1' + + solrFlavor = 'solr6' +} \ No newline at end of file diff --git a/integration-tests/build.gradle b/integration-tests/build.gradle index 8cebe84..9b6b194 100644 --- a/integration-tests/build.gradle +++ b/integration-tests/build.gradle @@ -86,7 +86,7 @@ subprojects { leanImage = true dockerBuild { - repository = "hub.xenit.eu/alfred-telemetry/alfresco-alfred-telemetry-${alfrescoVersion}" + repository = "private.docker.xenit.eu/alfred-telemetry/alfresco-alfred-telemetry-${alfrescoVersion}" tags = ["${version}"] automaticTags = false } diff --git a/integration-tests/src/test/java/eu/xenit/alfred/telemetry/integrationtesting/AlfrescoPrometheusEndpointTest.java b/integration-tests/src/test/java/eu/xenit/alfred/telemetry/integrationtesting/AlfrescoPrometheusEndpointTest.java index d24bc99..9020494 100644 --- a/integration-tests/src/test/java/eu/xenit/alfred/telemetry/integrationtesting/AlfrescoPrometheusEndpointTest.java +++ b/integration-tests/src/test/java/eu/xenit/alfred/telemetry/integrationtesting/AlfrescoPrometheusEndpointTest.java @@ -1,16 +1,15 @@ package eu.xenit.alfred.telemetry.integrationtesting; -import static io.restassured.RestAssured.given; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.containsString; -import static org.hamcrest.Matchers.isOneOf; - import io.restassured.response.ExtractableResponse; import io.restassured.response.Response; import org.apache.http.HttpStatus; import org.junit.jupiter.api.Test; -public class AlfrescoPrometheusEndpointTest extends RestAssuredTest { +import static io.restassured.RestAssured.given; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.containsString; + +class AlfrescoPrometheusEndpointTest extends RestAssuredTest { @Test void alfrescoEndpointExposesAlfredTelemetryMetrics() { @@ -21,6 +20,7 @@ void alfrescoEndpointExposesAlfredTelemetryMetrics() { // ERROR: cannot execute nextval() in a read-only transaction given().when().get("s/prometheus"); // Actual test + //enterprise will return 200 and community will not have this endpoint ExtractableResponse response = given() .log().ifValidationFails() @@ -28,10 +28,9 @@ void alfrescoEndpointExposesAlfredTelemetryMetrics() { .get("s/prometheus") .then() .log().ifValidationFails() - .statusCode(isOneOf(getExpectedStatusCode())) + .statusCode(getExpectedStatusCode()) .extract(); - - if(getExpectedStatusCode() != HttpStatus.SC_OK) { + if (getExpectedStatusCode() != HttpStatus.SC_OK) { return; } diff --git a/integration-tests/src/test/resources/compose/docker-compose-grafana.yml b/integration-tests/src/test/resources/compose/docker-compose-grafana.yml index d8a692f..54d1373 100644 --- a/integration-tests/src/test/resources/compose/docker-compose-grafana.yml +++ b/integration-tests/src/test/resources/compose/docker-compose-grafana.yml @@ -2,8 +2,8 @@ version: '3.2' services: grafana: - image: hub.xenit.eu/public/grafana:5 + image: grafana/grafana volumes: - ./grafana:/etc/grafana:z ports: - - 3000:3000 + - "3000:3000" diff --git a/integration-tests/src/test/resources/compose/docker-compose-prometheus-solr4.yml b/integration-tests/src/test/resources/compose/docker-compose-prometheus-solr4.yml index 7c88751..0037357 100644 --- a/integration-tests/src/test/resources/compose/docker-compose-prometheus-solr4.yml +++ b/integration-tests/src/test/resources/compose/docker-compose-prometheus-solr4.yml @@ -12,7 +12,7 @@ services: - '--web.console.libraries=/usr/share/prometheus/console_libraries' - '--web.console.templates=/usr/share/prometheus/consoles' ports: - - 9090:9090 + - "9090:9090" grafana: volumes: diff --git a/integration-tests/src/test/resources/compose/docker-compose-prometheus-solr6.yml b/integration-tests/src/test/resources/compose/docker-compose-prometheus-solr6.yml index fc1e0d8..a69bf01 100644 --- a/integration-tests/src/test/resources/compose/docker-compose-prometheus-solr6.yml +++ b/integration-tests/src/test/resources/compose/docker-compose-prometheus-solr6.yml @@ -12,7 +12,7 @@ services: - '--web.console.libraries=/usr/share/prometheus/console_libraries' - '--web.console.templates=/usr/share/prometheus/consoles' ports: - - 9090:9090 + - "9090:9090" grafana: volumes: diff --git a/integration-tests/src/test/resources/compose/docker-compose-prometheus.yml b/integration-tests/src/test/resources/compose/docker-compose-prometheus.yml index 5661391..536919b 100644 --- a/integration-tests/src/test/resources/compose/docker-compose-prometheus.yml +++ b/integration-tests/src/test/resources/compose/docker-compose-prometheus.yml @@ -12,7 +12,7 @@ services: - '--web.console.libraries=/usr/share/prometheus/console_libraries' - '--web.console.templates=/usr/share/prometheus/consoles' ports: - - 9090:9090 + - "9090:9090" grafana: volumes: diff --git a/integration-tests/src/test/resources/compose/docker-compose-sharding.yml b/integration-tests/src/test/resources/compose/docker-compose-sharding.yml index 863c4f4..c1b6adc 100644 --- a/integration-tests/src/test/resources/compose/docker-compose-sharding.yml +++ b/integration-tests/src/test/resources/compose/docker-compose-sharding.yml @@ -7,7 +7,7 @@ services: - DYNAMIC_SHARD_REGISTRATION=true solr1: - image: hub.xenit.eu/alfresco-enterprise/alfresco-solr6:1.3 + image: private.docker.xenit.eu/alfresco-enterprise/alfresco-solr6:2.0.6 restart: unless-stopped ports: - 8080 @@ -25,7 +25,7 @@ services: - GLOBAL_alfresco-1_shard.instance=1 solr2: - image: hub.xenit.eu/alfresco-enterprise/alfresco-solr6:1.3 + image: private.docker.xenit.eu/alfresco-enterprise/alfresco-solr6:2.0.6 restart: unless-stopped ports: - 8080 diff --git a/integration-tests/src/test/resources/compose/docker-compose.yml b/integration-tests/src/test/resources/compose/docker-compose.yml index 011abca..19839cd 100644 --- a/integration-tests/src/test/resources/compose/docker-compose.yml +++ b/integration-tests/src/test/resources/compose/docker-compose.yml @@ -4,16 +4,8 @@ services: alfresco: image: ${DOCKER_IMAGE} ports: - - target: 8080 - mode: host - - target: 8443 - mode: host -# - target: 8000 -# mode: host -# published: 8000 - # - target: 5000 - # mode: host - # published: 5000 + - "8080:8080" + - "8443:8443" environment: - DEBUG=true - JMX_ENABLED=true @@ -21,8 +13,9 @@ services: - ENABLE_CLUSTERING=true - GLOBAL_metrics.enabled=true - GLOBAL_alfred.telemetry.alfresco-integration.enabled=true - # Expose AT metrics in the Alfresco endpoint: + # Expose AT metrics in the Alfresco endpoint: - GLOBAL_alfred.telemetry.alfresco-integration.use-default-alfresco-registry=true + - GLOBAL_metrics.tomcatMetricsReporter.enabled=true # Enable Alfresco cache metrics: - GLOBAL_alfred.telemetry.binder.cache.enabled=true diff --git a/settings.gradle b/settings.gradle index ac223aa..ea2c7f9 100644 --- a/settings.gradle +++ b/settings.gradle @@ -11,7 +11,7 @@ include ':alfred-telemetry-solr' include ':integration-tests' -def integrationTestVersions = ["61", "62", "70","71","72","73"]; +def integrationTestVersions = ["61", "62", "70","71","72","73","74"]; if (!hasProperty("community")) { integrationTestVersions.each { version ->