diff --git a/.cirrus/tasks.yml b/.cirrus/tasks.yml index 36177f63..b474e078 100644 --- a/.cirrus/tasks.yml +++ b/.cirrus/tasks.yml @@ -18,6 +18,7 @@ env: CURRENT_LTA_VERSION: 9.9.7 CURRENT_VERSION: 10.8.1 NEXT_VERSION: 2025.1 + # Must be in the format YY.MM.0.###### where ###### is the build number COMMUNITY_BUILD_VERSION: 25.1.0.102122 @@ -62,9 +63,9 @@ multi_arch_build_gcp_staging_task: only_if: $CIRRUS_CRON == 'nightly-mend-scan' || $TRIGGER == 'PUSH_GCP_STAGING_IMAGES' env: matrix: - - version: 10/datacenter/app + - version: 2025.1/datacenter/app STAGING_IMAGE_NAME: ${GCLOUD_STAGING_REGISTRY}/${GCLOUD_STAGING_PRODUCT_NAME} - - version: 10/datacenter/search + - version: 2025.1/datacenter/search STAGING_IMAGE_NAME: ${GCLOUD_STAGING_REGISTRY}/${GCLOUD_STAGING_PRODUCT_NAME}/sonarqube-dce-search ec2_instance: <<: *VM_TEMPLATE @@ -112,19 +113,20 @@ multi_arch_build_9_x_task: - version: 9/datacenter/search tag: $CURRENT_LTA_VERSION-datacenter-search -multi_arch_build_10_x_task: +multi_arch_build_2025_x_task: <<: *multi_arch_build_task_template - skip: "!changesInclude('10/**/*') && !changesInclude('.cirrus/*')" + alias: multi_arch_build_sonarqube_server + skip: "!changesInclude('2025.1/**/*') && !changesInclude('.cirrus/*')" env: matrix: - - version: 10/developer - tag: $NEXT_VERSION-developer - - version: 10/enterprise - tag: $NEXT_VERSION-enterprise - - version: 10/datacenter/app - tag: $NEXT_VERSION-datacenter-app - - version: 10/datacenter/search - tag: $NEXT_VERSION-datacenter-search + - version: ${NEXT_VERSION}/developer + tag: ${NEXT_VERSION}-developer + - version: ${NEXT_VERSION}/enterprise + tag: ${NEXT_VERSION}-enterprise + - version: ${NEXT_VERSION}/datacenter/app + tag: ${NEXT_VERSION}-datacenter-app + - version: ${NEXT_VERSION}/datacenter/search + tag: ${NEXT_VERSION}-datacenter-search multi_arch_build_community_build_task: <<: *multi_arch_build_task_template @@ -141,7 +143,7 @@ private_scan_task: WS_WSS_URL: https://saas-eu.whitesourcesoftware.com/agent matrix: - tag: $CURRENT_LTA_VERSION-datacenter-app - - tag: $NEXT_VERSION-datacenter-app + - tag: ${NEXT_VERSION}-datacenter-app ec2_instance: <<: *CI_SCANNER login_script: @@ -153,7 +155,7 @@ private_scan_task: - java -jar /usr/local/bin/wss-unified-agent.jar -c .cirrus/wss-unified-agent.config -apiKey $MEND_API_KEY -product ${WS_PRODUCTNAME} -project ${STAGING_IMAGE_NAME}:${tag} -wss.url ${WS_WSS_URL} -docker.scanImages true depends_on: - multi_arch_build_9_x - - multi_arch_build_10_x + - multi_arch_build_sonarqube_server public_scan_task: only_if: $CIRRUS_CRON == 'nightly-mend-scan' @@ -211,9 +213,9 @@ multi_arch_test_9_x_task: tag: $CURRENT_LTA_VERSION-datacenter depends_on: multi_arch_build_9_x -multi_arch_test_10_x_task: +multi_arch_test_2025_x_task: <<: *multi_arch_test_task_template - skip: "!changesInclude('10/**/*') && !changesInclude('.cirrus/*')" + skip: "!changesInclude('2025.1/**/*') && !changesInclude('.cirrus/*')" matrix: - env: CIRRUS_ARCH: arm64 @@ -226,12 +228,12 @@ multi_arch_test_10_x_task: env: matrix: - test_name: docker - tag: $NEXT_VERSION-developer + tag: ${NEXT_VERSION}-developer - test_name: docker - tag: $NEXT_VERSION-enterprise + tag: ${NEXT_VERSION}-enterprise - test_name: docker-compose - tag: $NEXT_VERSION-datacenter - depends_on: multi_arch_build_10_x + tag: ${NEXT_VERSION}-datacenter + depends_on: multi_arch_build_sonarqube_server multi_arch_test_community_build_task: <<: *multi_arch_test_task_template diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 86d58133..12df16d1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,9 +24,9 @@ jobs: uses: ./.github/workflows/release-template.yml with: tag: ${{ matrix.tag }} - release-10-x: - name: Upload Release Assets for 10-X releases - if: contains(github.event.release.name, '10.') + release-2025-x: + name: Upload Release Assets for 2025.X releases + if: contains(github.event.release.name, 'SonarQube Server 2025.') permissions: contents: write id-token: write @@ -34,10 +34,10 @@ jobs: fail-fast: false matrix: tag: - - 10-developer - - 10-enterprise - - 10-datacenter-app - - 10-datacenter-search + - 2025-developer + - 2025-enterprise + - 2025-datacenter-app + - 2025-datacenter-search uses: ./.github/workflows/release-template.yml with: tag: ${{ matrix.tag }} diff --git a/10/datacenter/app/Dockerfile b/2025.1/datacenter/app/Dockerfile similarity index 95% rename from 10/datacenter/app/Dockerfile rename to 2025.1/datacenter/app/Dockerfile index 4130dfcd..5f72b20a 100644 --- a/10/datacenter/app/Dockerfile +++ b/2025.1/datacenter/app/Dockerfile @@ -1,6 +1,6 @@ FROM eclipse-temurin:17-jre-noble -LABEL io.k8s.description="SonarQube is a self-managed, automatic code review tool that systematically helps you deliver Clean Code." +LABEL io.k8s.description="SonarQube Server is a self-managed, automatic code review tool that systematically helps you deliver Clean Code." LABEL io.openshift.min-cpu=400m LABEL io.openshift.min-memory=2048M LABEL io.openshift.non-scalable=false diff --git a/10/datacenter/app/run.sh b/2025.1/datacenter/app/run.sh similarity index 100% rename from 10/datacenter/app/run.sh rename to 2025.1/datacenter/app/run.sh diff --git a/10/datacenter/app/sonar.sh b/2025.1/datacenter/app/sonar.sh similarity index 100% rename from 10/datacenter/app/sonar.sh rename to 2025.1/datacenter/app/sonar.sh diff --git a/10/datacenter/search/Dockerfile b/2025.1/datacenter/search/Dockerfile similarity index 95% rename from 10/datacenter/search/Dockerfile rename to 2025.1/datacenter/search/Dockerfile index af20d3ed..0b571f4f 100644 --- a/10/datacenter/search/Dockerfile +++ b/2025.1/datacenter/search/Dockerfile @@ -1,6 +1,6 @@ FROM eclipse-temurin:17-jre-noble -LABEL io.k8s.description="SonarQube is a self-managed, automatic code review tool that systematically helps you deliver Clean Code." +LABEL io.k8s.description="SonarQube Server is a self-managed, automatic code review tool that systematically helps you deliver Clean Code." LABEL io.openshift.min-cpu=400m LABEL io.openshift.min-memory=2048M LABEL io.openshift.non-scalable=false diff --git a/10/datacenter/search/run.sh b/2025.1/datacenter/search/run.sh similarity index 100% rename from 10/datacenter/search/run.sh rename to 2025.1/datacenter/search/run.sh diff --git a/10/datacenter/search/sonar.sh b/2025.1/datacenter/search/sonar.sh similarity index 100% rename from 10/datacenter/search/sonar.sh rename to 2025.1/datacenter/search/sonar.sh diff --git a/10/developer/Dockerfile b/2025.1/developer/Dockerfile similarity index 95% rename from 10/developer/Dockerfile rename to 2025.1/developer/Dockerfile index 2333c654..89165f3b 100644 --- a/10/developer/Dockerfile +++ b/2025.1/developer/Dockerfile @@ -1,6 +1,6 @@ FROM eclipse-temurin:17-jre-noble -LABEL io.k8s.description="SonarQube is a self-managed, automatic code review tool that systematically helps you deliver Clean Code." +LABEL io.k8s.description="SonarQube Server is a self-managed, automatic code review tool that systematically helps you deliver Clean Code." LABEL io.openshift.min-cpu=400m LABEL io.openshift.min-memory=2048M LABEL io.openshift.non-scalable=true diff --git a/10/developer/entrypoint.sh b/2025.1/developer/entrypoint.sh similarity index 100% rename from 10/developer/entrypoint.sh rename to 2025.1/developer/entrypoint.sh diff --git a/10/enterprise/Dockerfile b/2025.1/enterprise/Dockerfile similarity index 95% rename from 10/enterprise/Dockerfile rename to 2025.1/enterprise/Dockerfile index e85440e0..2ed55420 100644 --- a/10/enterprise/Dockerfile +++ b/2025.1/enterprise/Dockerfile @@ -1,6 +1,6 @@ FROM eclipse-temurin:17-jre-noble -LABEL io.k8s.description="SonarQube is a self-managed, automatic code review tool that systematically helps you deliver Clean Code." +LABEL io.k8s.description="SonarQube Server is a self-managed, automatic code review tool that systematically helps you deliver Clean Code." LABEL io.openshift.min-cpu=400m LABEL io.openshift.min-memory=2048M LABEL io.openshift.non-scalable=true diff --git a/10/enterprise/entrypoint.sh b/2025.1/enterprise/entrypoint.sh similarity index 100% rename from 10/enterprise/entrypoint.sh rename to 2025.1/enterprise/entrypoint.sh diff --git a/community-build/Dockerfile b/community-build/Dockerfile index eef78c36..9158d3bb 100644 --- a/community-build/Dockerfile +++ b/community-build/Dockerfile @@ -1,6 +1,6 @@ FROM eclipse-temurin:17-jre-noble -LABEL io.k8s.description="SonarQube is a self-managed, automatic code review tool that systematically helps you deliver Clean Code." +LABEL io.k8s.description="SonarQube Community Build is a self-managed, automatic code review tool that systematically helps you deliver Clean Code." LABEL io.openshift.min-cpu=400m LABEL io.openshift.min-memory=2048M LABEL io.openshift.non-scalable=true diff --git a/release.md b/release.md index 7c2646cf..b606aa7f 100644 --- a/release.md +++ b/release.md @@ -1,11 +1,10 @@ # Releasing -Docker image release cycle and SonarQube Server product ---- +## Docker image release cycle and SonarQube Server product + We consider the **docker image** as part of the SonarQube Server **product**. Therefore, it follows the same release process. -Overview --------- +## Overview Release of a new version of the official SonarQube Server Docker images is made of several operations. (Please note that in case of a patch release that should not include the latest changes on master, you need to release from a new branch - e.g., `release/10.8.1` - and propagate the changes to master afterwards). @@ -13,18 +12,15 @@ Release of a new version of the official SonarQube Server Docker images is made 2. If you are releasing a new LTA, set `CURRENT_LTA_VERSION` in `.cirrus/tasks.yml`. Otherwise, if you are releasing a Community build, set `COMMUNITY_BUILD_VERSION` only. In all the other cases where a paid edition is about to be releases, set `CURRENT_VERSION` (please note that the nightly build will fail before the public image becomes available). 3. Update the docker hub SonarQube Server's documentation (if applicable) 4. Add a GIT tag for the new version - 1. If you are releasing a SonarQube Server version, you need to [Draft a New Release](https://github.com/SonarSource/docker-sonarqube/releases/new), where the name matches "SonarQube Server 2025." + 1. If you are releasing a SonarQube Server version, you need to [Draft a New Release](https://github.com/SonarSource/docker-sonarqube/releases/new), where the name matches "SonarQube Server 2025.", followed by the month version, i.e., "SonarQube Server 2025.1". 2. Likewise, if you are releasing a Community Build, the release name should match "Community Build", followed by the month version, i.e., "Community Build 25.1". 5. Update Docker Hub's SonarQube Server images - -Bump the version of SonarQube Server in Dockerfiles ------------------------------ +## Bump the version of SonarQube Server in Dockerfiles The version of SonarQube Server is hardcoded in each Dockerfile of this repository and must be updated in master branch. -Update the docker hub SonarQube Server's documentation (if applicable) -------------------------------- +## Update the docker hub SonarQube Server's documentation (if applicable) If needed, prepare PR of Docker Hub documentation [https://github.com/docker-library/docs](https://github.com/docker-library/docs) @@ -41,30 +37,27 @@ Until SonarQube Server is released and the public artifacts are available, keep For more and up to date documentation, see https://github.com/docker-library/docs. - -Update Docker Hub's SonarQube Server images ------------------------ +## Update Docker Hub's SonarQube Server images In order to update the Docker Hub images, a Pull Request must be created on the [official-images](https://github.com/docker-library/official-images) repository. To do so you can use your own personal fork. Create a feature branch on the fork: + * `GitCommit` must be updated to this repository master branch's HEAD. * `GitFetch` is the branch/tag (e.g., refs/tags/10.8.1) where the commit can be found. Setting this value is only needed if you are releasing from a branch different from master. * `Tags` and `Directory` must be added/updated appropriatly for each edition * see https://github.com/docker-library/official-images/pull/8837/files as an example Until SonarQube Server is released and the public artifacts are available, keep your PR a draft PR to make it clear it is not ready to be merged yet. + * Create the PR [here](https://github.com/docker-library/official-images/compare) - * If the documentation was updated in the step before, reference that PR in this PR. + * If the documentation was updated in the step before, reference that PR in this PR. * Click on *compare across fork* to be able to use the fork as head repository. - For more and up to date documentation, see https://github.com/docker-library/official-images. - -Add a GIT tag for the new version ----------------- +## Add a GIT tag for the new version The commit referenced in the DockerHub Pull Request must be tagged with the (marketing) version of SQ: eg. `8.0`, `8.0.1`, `8.1`. diff --git a/sonar-project.properties b/sonar-project.properties index efed665b..4eb364cd 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,3 +1,3 @@ sonar.projectKey=SonarSource_docker-sonarqube_AYcnOvlJTpBOcQuGEdI5 -sonar.sources=9/,10/ +sonar.sources=9/,2025.1/ sonar.organization=sonarsource