From 4517c43cc7f77f1b69c0487782125a52da0d15f5 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 22 May 2024 19:20:14 +0100 Subject: [PATCH] Remove Concourse CI configuration Closes gh-40569 --- ci/README.adoc | 18 - ci/config/changelog-generator.yml | 23 - .../gradle-plugin-publishing/build.gradle | 13 - .../gradle-plugin-publishing/settings.gradle | 0 ci/config/release-scripts.yml | 11 - ci/images/README.adoc | 21 - ci/images/ci-image-jdk21/Dockerfile | 15 - ci/images/ci-image/Dockerfile | 15 - ci/images/docker-lib.sh | 97 --- ci/images/get-docker-compose-url.sh | 5 - ci/images/get-docker-url.sh | 5 - ci/images/get-jdk-url.sh | 14 - ci/images/setup.sh | 64 -- ci/parameters.yml | 16 - ci/pipeline.yml | 672 ------------------ ci/scripts/build-project-windows.bat | 4 - ci/scripts/build-project.sh | 13 - ci/scripts/common.sh | 7 - ci/scripts/detect-docker-updates.sh | 35 - ci/scripts/detect-jdk-updates.sh | 60 -- ci/scripts/detect-ubuntu-image-updates.sh | 29 - ci/scripts/generate-changelog.sh | 12 - ci/scripts/promote.sh | 17 - ci/scripts/publish-gradle-plugin.sh | 7 - ci/scripts/publish-to-sdkman.sh | 11 - ci/scripts/run-system-tests.sh | 12 - ci/scripts/stage.sh | 50 -- ci/scripts/update-homebrew-tap.sh | 19 - ci/tasks/build-ci-image.yml | 30 - ci/tasks/build-project-windows.yml | 16 - ci/tasks/build-project.yml | 31 - ci/tasks/detect-docker-updates.yml | 12 - ci/tasks/detect-jdk-updates.yml | 13 - ci/tasks/detect-ubuntu-image-updates.yml | 12 - ci/tasks/generate-changelog.yml | 22 - ci/tasks/promote.yml | 25 - ci/tasks/publish-gradle-plugin.yml | 10 - ci/tasks/publish-to-sdkman.yml | 20 - ci/tasks/run-system-tests.yml | 29 - ci/tasks/stage.yml | 19 - ci/tasks/update-homebrew-tap.yml | 12 - .../example/JettyServerCustomizerConfig.java | 5 +- .../jsp/SampleWebJspApplicationTests.java | 24 +- 43 files changed, 4 insertions(+), 1541 deletions(-) delete mode 100644 ci/README.adoc delete mode 100644 ci/config/changelog-generator.yml delete mode 100644 ci/config/gradle-plugin-publishing/build.gradle delete mode 100644 ci/config/gradle-plugin-publishing/settings.gradle delete mode 100644 ci/config/release-scripts.yml delete mode 100644 ci/images/README.adoc delete mode 100644 ci/images/ci-image-jdk21/Dockerfile delete mode 100644 ci/images/ci-image/Dockerfile delete mode 100644 ci/images/docker-lib.sh delete mode 100755 ci/images/get-docker-compose-url.sh delete mode 100755 ci/images/get-docker-url.sh delete mode 100755 ci/images/get-jdk-url.sh delete mode 100755 ci/images/setup.sh delete mode 100644 ci/parameters.yml delete mode 100644 ci/pipeline.yml delete mode 100755 ci/scripts/build-project-windows.bat delete mode 100755 ci/scripts/build-project.sh delete mode 100644 ci/scripts/common.sh delete mode 100755 ci/scripts/detect-docker-updates.sh delete mode 100755 ci/scripts/detect-jdk-updates.sh delete mode 100755 ci/scripts/detect-ubuntu-image-updates.sh delete mode 100755 ci/scripts/generate-changelog.sh delete mode 100755 ci/scripts/promote.sh delete mode 100755 ci/scripts/publish-gradle-plugin.sh delete mode 100755 ci/scripts/publish-to-sdkman.sh delete mode 100755 ci/scripts/run-system-tests.sh delete mode 100755 ci/scripts/stage.sh delete mode 100755 ci/scripts/update-homebrew-tap.sh delete mode 100644 ci/tasks/build-ci-image.yml delete mode 100644 ci/tasks/build-project-windows.yml delete mode 100644 ci/tasks/build-project.yml delete mode 100644 ci/tasks/detect-docker-updates.yml delete mode 100644 ci/tasks/detect-jdk-updates.yml delete mode 100644 ci/tasks/detect-ubuntu-image-updates.yml delete mode 100755 ci/tasks/generate-changelog.yml delete mode 100644 ci/tasks/promote.yml delete mode 100644 ci/tasks/publish-gradle-plugin.yml delete mode 100755 ci/tasks/publish-to-sdkman.yml delete mode 100644 ci/tasks/run-system-tests.yml delete mode 100644 ci/tasks/stage.yml delete mode 100755 ci/tasks/update-homebrew-tap.yml diff --git a/ci/README.adoc b/ci/README.adoc deleted file mode 100644 index 6b4dcd7d2e9..00000000000 --- a/ci/README.adoc +++ /dev/null @@ -1,18 +0,0 @@ -== Concourse pipeline - -Ensure that you've setup the spring-boot target and can login - -[source] ----- -$ fly -t spring-boot login -n spring-boot -c https://ci.spring.io ----- - -The pipeline can be deployed using the following command: - -[source] ----- -$ fly -t spring-boot set-pipeline -p spring-boot-3.3.x -c ci/pipeline.yml -l ci/parameters.yml ----- - -NOTE: This assumes that you have credhub integration configured with the appropriate -secrets. diff --git a/ci/config/changelog-generator.yml b/ci/config/changelog-generator.yml deleted file mode 100644 index 67db9ca4f9d..00000000000 --- a/ci/config/changelog-generator.yml +++ /dev/null @@ -1,23 +0,0 @@ -changelog: - repository: spring-projects/spring-boot - sections: - - title: ":star: New Features" - labels: - - "type: enhancement" - - title: ":lady_beetle: Bug Fixes" - labels: - - "type: bug" - - "type: regression" - - title: ":notebook_with_decorative_cover: Documentation" - labels: - - "type: documentation" - - title: ":hammer: Dependency Upgrades" - sort: "title" - labels: - - "type: dependency-upgrade" - issues: - ports: - - label: "status: forward-port" - bodyExpression: 'Forward port of issue #(\d+).*' - - label: "status: back-port" - bodyExpression: 'Back port of issue #(\d+).*' diff --git a/ci/config/gradle-plugin-publishing/build.gradle b/ci/config/gradle-plugin-publishing/build.gradle deleted file mode 100644 index e3a34c3ed2b..00000000000 --- a/ci/config/gradle-plugin-publishing/build.gradle +++ /dev/null @@ -1,13 +0,0 @@ -plugins { - id "com.gradle.plugin-publish" version "0.15.0" -} -tasks.register("publishExisting", com.gradle.publish.PublishExistingTask) { - pluginId = "org.springframework.boot" - fileRepositoryRoot = new File("${repositoryRoot}") - pluginVersion = "${bootVersion}" - pluginCoordinates = "org.springframework.boot:spring-boot-gradle-plugin:${bootVersion}" - displayName = "Spring Boot Gradle Plugin" - pluginDescription = "Spring Boot Gradle Plugin" - website = "https://spring.io/projects/spring-boot" - vcsUrl = "https://github.com/spring-projects/spring-boot" -} \ No newline at end of file diff --git a/ci/config/gradle-plugin-publishing/settings.gradle b/ci/config/gradle-plugin-publishing/settings.gradle deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/ci/config/release-scripts.yml b/ci/config/release-scripts.yml deleted file mode 100644 index 207ae802c06..00000000000 --- a/ci/config/release-scripts.yml +++ /dev/null @@ -1,11 +0,0 @@ -spring: - main: - banner-mode: off -sonatype: - exclude: - - "build-info.json" - - "org/springframework/boot/spring-boot-docs/.*" -sdkman: - artifact: "org.springframework.boot:spring-boot-cli:*:zip:bin" - broadcast-url: "https://github.com/spring-projects/spring-boot/releases/v%s" - candidate: "springboot" diff --git a/ci/images/README.adoc b/ci/images/README.adoc deleted file mode 100644 index 92fa3c2ec51..00000000000 --- a/ci/images/README.adoc +++ /dev/null @@ -1,21 +0,0 @@ -== CI Images - -These images are used by CI to run the actual builds. - -To build the image locally run the following from this directory: - ----- -$ docker build --no-cache -f /Dockerfile . ----- - -For example - ----- -$ docker build --no-cache -f ci-image/Dockerfile . ----- - -To test run: - ----- -$ docker run -it --entrypoint /bin/bash ----- diff --git a/ci/images/ci-image-jdk21/Dockerfile b/ci/images/ci-image-jdk21/Dockerfile deleted file mode 100644 index 3d6753c1e40..00000000000 --- a/ci/images/ci-image-jdk21/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -ARG DOCKER_PROXY_CACHE= -FROM ${DOCKER_PROXY_CACHE}ubuntu:jammy-20240427 - -ADD setup.sh /setup.sh -ADD get-jdk-url.sh /get-jdk-url.sh -ADD get-docker-url.sh /get-docker-url.sh -ADD get-docker-compose-url.sh /get-docker-compose-url.sh -RUN ./setup.sh java17 java21 - -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 -ENV JAVA_HOME /opt/openjdk -ENV PATH $JAVA_HOME/bin:$PATH -ADD docker-lib.sh /docker-lib.sh diff --git a/ci/images/ci-image/Dockerfile b/ci/images/ci-image/Dockerfile deleted file mode 100644 index b976a0f8135..00000000000 --- a/ci/images/ci-image/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -ARG DOCKER_PROXY_CACHE= -FROM ${DOCKER_PROXY_CACHE}ubuntu:jammy-20240427 - -ADD setup.sh /setup.sh -ADD get-jdk-url.sh /get-jdk-url.sh -ADD get-docker-url.sh /get-docker-url.sh -ADD get-docker-compose-url.sh /get-docker-compose-url.sh -RUN ./setup.sh java17 - -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en -ENV LC_ALL en_US.UTF-8 -ENV JAVA_HOME /opt/openjdk -ENV PATH $JAVA_HOME/bin:$PATH -ADD docker-lib.sh /docker-lib.sh diff --git a/ci/images/docker-lib.sh b/ci/images/docker-lib.sh deleted file mode 100644 index eac9c2eee9a..00000000000 --- a/ci/images/docker-lib.sh +++ /dev/null @@ -1,97 +0,0 @@ -# Based on: https://github.com/concourse/docker-image-resource/blob/master/assets/common.sh - -DOCKER_LOG_FILE=${DOCKER_LOG_FILE:-/tmp/docker.log} -SKIP_PRIVILEGED=${SKIP_PRIVILEGED:-false} -STARTUP_TIMEOUT=${STARTUP_TIMEOUT:-120} - -sanitize_cgroups() { - mkdir -p /sys/fs/cgroup - mountpoint -q /sys/fs/cgroup || \ - mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup - - mount -o remount,rw /sys/fs/cgroup - - sed -e 1d /proc/cgroups | while read sys hierarchy num enabled; do - if [ "$enabled" != "1" ]; then - # subsystem disabled; skip - continue - fi - - grouping="$(cat /proc/self/cgroup | cut -d: -f2 | grep "\\<$sys\\>")" || true - if [ -z "$grouping" ]; then - # subsystem not mounted anywhere; mount it on its own - grouping="$sys" - fi - - mountpoint="/sys/fs/cgroup/$grouping" - - mkdir -p "$mountpoint" - - # clear out existing mount to make sure new one is read-write - if mountpoint -q "$mountpoint"; then - umount "$mountpoint" - fi - - mount -n -t cgroup -o "$grouping" cgroup "$mountpoint" - - if [ "$grouping" != "$sys" ]; then - if [ -L "/sys/fs/cgroup/$sys" ]; then - rm "/sys/fs/cgroup/$sys" - fi - - ln -s "$mountpoint" "/sys/fs/cgroup/$sys" - fi - done - - if ! test -e /sys/fs/cgroup/systemd ; then - mkdir /sys/fs/cgroup/systemd - mount -t cgroup -o none,name=systemd none /sys/fs/cgroup/systemd - fi -} - -start_docker() { - mkdir -p /var/log - mkdir -p /var/run - - if [ "$SKIP_PRIVILEGED" = "false" ]; then - sanitize_cgroups - - # check for /proc/sys being mounted readonly, as systemd does - if grep '/proc/sys\s\+\w\+\s\+ro,' /proc/mounts >/dev/null; then - mount -o remount,rw /proc/sys - fi - fi - - local mtu=$(cat /sys/class/net/$(ip route get 8.8.8.8|awk '{ print $5 }')/mtu) - local server_args="--mtu ${mtu}" - local registry="" - - server_args="${server_args}" - - if [ -n "$1" ]; then - server_args="${server_args} --registry-mirror https://$1" - fi - - try_start() { - dockerd --data-root /scratch/docker ${server_args} >$DOCKER_LOG_FILE 2>&1 & - echo $! > /tmp/docker.pid - - sleep 1 - - echo waiting for docker to come up... - until docker info >/dev/null 2>&1; do - sleep 1 - if ! kill -0 "$(cat /tmp/docker.pid)" 2>/dev/null; then - return 1 - fi - done - } - - export server_args DOCKER_LOG_FILE - declare -fx try_start - - if ! timeout ${STARTUP_TIMEOUT} bash -ce 'while true; do try_start && break; done'; then - echo Docker failed to start within ${STARTUP_TIMEOUT} seconds. - return 1 - fi -} diff --git a/ci/images/get-docker-compose-url.sh b/ci/images/get-docker-compose-url.sh deleted file mode 100755 index bcabee3d546..00000000000 --- a/ci/images/get-docker-compose-url.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -set -e - -version="2.17.0" -echo "https://github.com/docker/compose/releases/download/v$version/docker-compose-linux-x86_64" diff --git a/ci/images/get-docker-url.sh b/ci/images/get-docker-url.sh deleted file mode 100755 index 347bd6cbbeb..00000000000 --- a/ci/images/get-docker-url.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -set -e - -version="26.1.1" -echo "https://download.docker.com/linux/static/stable/x86_64/docker-$version.tgz"; diff --git a/ci/images/get-jdk-url.sh b/ci/images/get-jdk-url.sh deleted file mode 100755 index 4a914ad1a35..00000000000 --- a/ci/images/get-jdk-url.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/bash -set -e - -case "$1" in - java17) - echo "https://github.com/bell-sw/Liberica/releases/download/17.0.11+10/bellsoft-jdk17.0.11+10-linux-amd64.tar.gz" - ;; - java21) - echo "https://github.com/bell-sw/Liberica/releases/download/21.0.3+10/bellsoft-jdk21.0.3+10-linux-amd64.tar.gz" - ;; - *) - echo $"Unknown java version" - exit 1 -esac diff --git a/ci/images/setup.sh b/ci/images/setup.sh deleted file mode 100755 index f1d15e5149c..00000000000 --- a/ci/images/setup.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -set -ex - -########################################################### -# OS and UTILS -########################################################### - -export DEBIAN_FRONTEND=noninteractive -apt-get update -apt-get install --no-install-recommends -y locales tzdata ca-certificates net-tools libxml2-utils git curl libudev1 libxml2-utils iptables iproute2 jq -locale-gen en_US.utf8 -ln -fs /usr/share/zoneinfo/UTC /etc/localtime -dpkg-reconfigure --frontend noninteractive tzdata -rm -rf /var/lib/apt/lists/* - -curl https://raw.githubusercontent.com/spring-io/concourse-java-scripts/v0.0.4/concourse-java.sh > /opt/concourse-java.sh - - -########################################################### -# JAVA -########################################################### -JDK_URL=$( ./get-jdk-url.sh $1 ) - -mkdir -p /opt/openjdk -cd /opt/openjdk -curl -L ${JDK_URL} | tar zx --strip-components=1 -test -f /opt/openjdk/bin/java -test -f /opt/openjdk/bin/javac - -if [[ $# -eq 2 ]]; then - cd / - TOOLCHAIN_JDK_URL=$( ./get-jdk-url.sh $2 ) - - mkdir -p /opt/openjdk-toolchain - cd /opt/openjdk-toolchain - curl -L ${TOOLCHAIN_JDK_URL} | tar zx --strip-components=1 - test -f /opt/openjdk-toolchain/bin/java - test -f /opt/openjdk-toolchain/bin/javac -fi - - -########################################################### -# DOCKER -########################################################### -cd / -DOCKER_URL=$( ./get-docker-url.sh ) -curl -L ${DOCKER_URL} | tar zx -mv /docker/* /bin/ -chmod +x /bin/docker* - -export ENTRYKIT_VERSION=0.4.0 -curl -L https://github.com/progrium/entrykit/releases/download/v${ENTRYKIT_VERSION}/entrykit_${ENTRYKIT_VERSION}_Linux_x86_64.tgz | tar zx -chmod +x entrykit && \ -mv entrykit /bin/entrykit && \ -entrykit --symlink - - -########################################################### -# DOCKER COMPOSE -########################################################### -mkdir -p /usr/local/lib/docker/cli-plugins -DOCKER_COMPOSE_URL=$( ./get-docker-compose-url.sh ) -curl -L ${DOCKER_COMPOSE_URL} -o /usr/local/lib/docker/cli-plugins/docker-compose -chmod +x /usr/local/lib/docker/cli-plugins/docker-compose diff --git a/ci/parameters.yml b/ci/parameters.yml deleted file mode 100644 index 362da5a78f1..00000000000 --- a/ci/parameters.yml +++ /dev/null @@ -1,16 +0,0 @@ -github-organization-name: "spring-projects" -github-repository-name: "spring-boot" -github-repository-uri: "https://github.com/spring-projects/spring-boot.git" -homebrew-tap-repo: "https://github.com/spring-io/homebrew-tap.git" -docker-hub-organization: "springci" -docker-hub-repository-prefix: "spring-boot" -artifactory-snapshot-repository: "libs-snapshot-local" -artifactory-staging-repository: "libs-staging-local" -artifactory-url: "https://repo.spring.io" -branch: "main" -milestone: "3.3.x" -build-name: "spring-boot" -concourse-url: "https://ci.spring.io" -task-timeout: 2h00m -final-release: false -dockerhub-proxy-cache: harbor-repo.vmware.com/dockerhub-proxy-cache/ \ No newline at end of file diff --git a/ci/pipeline.yml b/ci/pipeline.yml deleted file mode 100644 index 140e4e62b8d..00000000000 --- a/ci/pipeline.yml +++ /dev/null @@ -1,672 +0,0 @@ -anchors: - git-repo-resource-source: &git-repo-resource-source - uri: ((github-repository-uri)) - username: ((github-username)) - password: ((github-ci-release-token)) - branch: ((branch)) - registry-image-resource-source: ®istry-image-resource-source - username: ((docker-hub-username)) - password: ((docker-hub-password)) - ci-registry-image-resource-source: &ci-registry-image-resource-source - username: ((harbor-registry-username)) - password: ((harbor-registry-password)) - tag: ((milestone)) - gradle-enterprise-task-params: &gradle-enterprise-task-params - GRADLE_ENTERPRISE_ACCESS_KEY: ((gradle_enterprise_secret_access_key)) - GRADLE_ENTERPRISE_CACHE_URL: ((gradle_enterprise_cache_url)) - GRADLE_ENTERPRISE_CACHE_USERNAME: ((gradle_enterprise_cache_user.username)) - GRADLE_ENTERPRISE_CACHE_PASSWORD: ((gradle_enterprise_cache_user.password)) - docker-hub-task-params: &docker-hub-task-params - DOCKER_HUB_MIRROR: ((docker-hub-mirror)) - DOCKER_HUB_USERNAME: ((docker-hub-username)) - DOCKER_HUB_PASSWORD: ((docker-hub-password)) - DOCKER_HUB_AUTH: ((docker-hub-auth)) - github-task-params: &github-task-params - GITHUB_REPO: ((github-repository-name)) - GITHUB_ORGANIZATION: ((github-organization-name)) - GITHUB_PASSWORD: ((github-ci-release-token)) - GITHUB_USERNAME: ((github-username)) - MILESTONE: ((milestone)) - sontatype-task-params: &sonatype-task-params - SONATYPE_USERNAME: ((sonatype-username)) - SONATYPE_PASSWORD: ((sonatype-password)) - SONATYPE_URL: ((sonatype-url)) - SONATYPE_STAGING_PROFILE_ID: ((sonatype-staging-profile-id)) - artifactory-task-params: &artifactory-task-params - ARTIFACTORY_URL: ((artifactory-url)) - ARTIFACTORY_USERNAME: ((artifactory-username)) - ARTIFACTORY_PASSWORD: ((artifactory-password)) - sdkman-task-params: &sdkman-task-params - SDKMAN_CONSUMER_KEY: ((sdkman-consumer-key)) - SDKMAN_CONSUMER_TOKEN: ((sdkman-consumer-token)) - build-project-task-params: &build-project-task-params - privileged: true - timeout: ((task-timeout)) - file: git-repo/ci/tasks/build-project.yml - params: - BRANCH: ((branch)) - <<: *gradle-enterprise-task-params - <<: *docker-hub-task-params - run-system-tests-task-params: &run-system-tests-task-params - privileged: true - timeout: ((task-timeout)) - file: git-repo/ci/tasks/run-system-tests.yml - params: - BRANCH: ((branch)) - <<: *gradle-enterprise-task-params - <<: *docker-hub-task-params - artifactory-repo-put-params: &artifactory-repo-put-params - signing_key: ((signing-key)) - signing_passphrase: ((signing-passphrase)) - repo: ((artifactory-snapshot-repository)) - folder: distribution-repository - build_uri: "https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}" - build_number: "${BUILD_JOB_NAME}-${BUILD_NAME}" - disable_checksum_uploads: true - threads: 8 - slack-fail-params: &slack-fail-params - text: > - :concourse-failed: - [$TEXT_FILE_CONTENT] - text_file: git-repo/build/build-scan-uri.txt - silent: true - icon_emoji: ":concourse:" - username: concourse-ci - slack-success-params: &slack-success-params - text: > - :concourse-succeeded: - [$TEXT_FILE_CONTENT] - text_file: git-repo/build/build-scan-uri.txt - silent: true - icon_emoji: ":concourse:" - username: concourse-ci - homebrew-tap-repo-resource-source: &homebrew-tap-repo-resource-source - uri: ((homebrew-tap-repo)) - username: ((github-username)) - password: ((github-ci-release-token)) - branch: main - gradle-publish-params: &gradle-publish-params - GRADLE_PUBLISH_KEY: ((gradle-publish-key)) - GRADLE_PUBLISH_SECRET: ((gradle-publish-secret)) -resource_types: -- name: registry-image - type: registry-image - source: - <<: *registry-image-resource-source - repository: ((dockerhub-proxy-cache))concourse/registry-image-resource - tag: 1.9.0 -- name: artifactory-resource - type: registry-image - source: - <<: *registry-image-resource-source - repository: ((dockerhub-proxy-cache))springio/artifactory-resource - tag: 0.0.18 -- name: github-status-resource - type: registry-image - source: - <<: *registry-image-resource-source - repository: ((dockerhub-proxy-cache))dpb587/github-status-resource - tag: master -- name: slack-notification - type: registry-image - source: - <<: *registry-image-resource-source - repository: ((dockerhub-proxy-cache))cfcommunity/slack-notification-resource - tag: latest -- name: github-release - type: registry-image - source: - <<: *registry-image-resource-source - repository: ((dockerhub-proxy-cache))concourse/github-release-resource - tag: 1.8.0 -resources: -- name: git-repo - type: git - icon: github - source: - <<: *git-repo-resource-source -- name: git-repo-windows - type: git - icon: github - source: - <<: *git-repo-resource-source - git_config: - - name: core.autocrlf - value: true -- name: github-pre-release - type: github-release - icon: briefcase-download-outline - source: - owner: ((github-organization-name)) - repository: ((github-repository-name)) - access_token: ((github-ci-release-token)) - pre_release: true - release: false -- name: github-release - type: github-release - icon: briefcase-download - source: - owner: ((github-organization-name)) - repository: ((github-repository-name)) - access_token: ((github-ci-release-token)) - pre_release: false -- name: ci-images-git-repo - type: git - icon: github - source: - uri: ((github-repository-uri)) - branch: ((branch)) - paths: ["ci/images/*"] -- name: ci-image - type: registry-image - icon: docker - source: - <<: *ci-registry-image-resource-source - repository: projects.registry.vmware.com/spring-oss-ci/spring-boot-ci -- name: ci-image-jdk21 - type: registry-image - icon: docker - source: - <<: *ci-registry-image-resource-source - repository: projects.registry.vmware.com/spring-oss-ci/spring-boot-ci-jdk21 -- name: paketo-builder-base-image - type: registry-image - icon: docker - source: - repository: ((dockerhub-proxy-cache))paketobuildpacks/builder-jammy-base - tag: latest -- name: artifactory-repo - type: artifactory-resource - icon: package-variant - source: - uri: ((artifactory-url)) - username: ((artifactory-username)) - password: ((artifactory-password)) - build_name: ((build-name)) - build_number_prefix: "${BUILD_PIPELINE_NAME}-" - check_limit: 500 -- name: repo-status-build - type: github-status-resource - icon: eye-check-outline - source: - repository: ((github-organization-name))/((github-repository-name)) - access_token: ((github-ci-status-token)) - branch: ((branch)) - context: build -- name: repo-status-jdk21-build - type: github-status-resource - icon: eye-check-outline - source: - repository: ((github-organization-name))/((github-repository-name)) - access_token: ((github-ci-status-token)) - branch: ((branch)) - context: jdk21-build -- name: slack-alert - type: slack-notification - icon: slack - source: - url: ((slack-webhook-url)) -- name: every-wednesday - type: time - icon: clock-outline - source: - start: 8:00 PM - stop: 9:00 PM - days: [Wednesday] -- name: daily - type: time - icon: clock-outline - source: { interval: "24h" } -- name: homebrew-tap-repo - type: git - icon: github - source: - <<: *homebrew-tap-repo-resource-source -jobs: -- name: build-ci-images - plan: - - get: ci-images-git-repo - trigger: true - - get: git-repo - - in_parallel: - - task: build-ci-image - privileged: true - file: git-repo/ci/tasks/build-ci-image.yml - output_mapping: - image: ci-image - vars: - ci-image-name: ci-image - dockerhub-proxy-cache: ((dockerhub-proxy-cache)) - - task: build-ci-image-jdk21 - privileged: true - file: git-repo/ci/tasks/build-ci-image.yml - output_mapping: - image: ci-image-jdk21 - vars: - ci-image-name: ci-image-jdk21 - dockerhub-proxy-cache: ((dockerhub-proxy-cache)) - - in_parallel: - - put: ci-image - params: - image: ci-image/image.tar - - put: ci-image-jdk21 - params: - image: ci-image-jdk21/image.tar -- name: detect-jdk-updates - plan: - - get: git-repo - - get: every-wednesday - trigger: true - - get: ci-image - - in_parallel: - - task: detect-jdk17-update - image: ci-image - file: git-repo/ci/tasks/detect-jdk-updates.yml - params: - <<: *github-task-params - JDK_VERSION: java17 - - task: detect-jdk21-update - image: ci-image - file: git-repo/ci/tasks/detect-jdk-updates.yml - params: - <<: *github-task-params - JDK_VERSION: java21 -- name: detect-ubuntu-image-updates - plan: - - get: git-repo - - get: every-wednesday - trigger: true - - get: ci-image - - do: - - task: detect-ubuntu-image-updates - image: ci-image - file: git-repo/ci/tasks/detect-ubuntu-image-updates.yml - params: - <<: *github-task-params -- name: detect-docker-updates - plan: - - get: git-repo - - get: every-wednesday - trigger: true - - get: ci-image - - do: - - task: detect-docker-updates - image: ci-image - file: git-repo/ci/tasks/detect-docker-updates.yml - params: - <<: *github-task-params -- name: build - serial: true - public: true - plan: - - get: ci-image - - get: git-repo - trigger: true - - put: repo-status-build - params: { state: "pending", commit: "git-repo" } - - do: - - task: build-project - image: ci-image - <<: *build-project-task-params - on_failure: - do: - - put: repo-status-build - params: { state: "failure", commit: "git-repo" } - - put: slack-alert - params: - <<: *slack-fail-params - - put: repo-status-build - params: { state: "success", commit: "git-repo" } - - put: slack-alert - params: - <<: *slack-success-params -- name: jdk21-build - serial: true - public: true - plan: - - get: ci-image-jdk21 - - get: git-repo - trigger: true - - put: repo-status-jdk21-build - params: { state: "pending", commit: "git-repo" } - - do: - - task: build-project - image: ci-image-jdk21 - privileged: true - timeout: ((task-timeout)) - file: git-repo/ci/tasks/build-project.yml - params: - BRANCH: ((branch)) - TOOLCHAIN_JAVA_VERSION: 21 - <<: *gradle-enterprise-task-params - <<: *docker-hub-task-params - on_failure: - do: - - put: repo-status-jdk21-build - params: { state: "failure", commit: "git-repo" } - - put: slack-alert - params: - <<: *slack-fail-params - - put: repo-status-jdk21-build - params: { state: "success", commit: "git-repo" } - - put: slack-alert - params: - <<: *slack-success-params -- name: windows-build - serial: true - plan: - - get: git-repo - resource: git-repo-windows - - get: daily - trigger: true - - do: - - task: build-project - privileged: true - file: git-repo/ci/tasks/build-project-windows.yml - tags: - - WIN64 - timeout: ((task-timeout)) - params: - BRANCH: ((branch)) - <<: *gradle-enterprise-task-params - on_failure: - do: - - put: slack-alert - params: - <<: *slack-fail-params - - put: slack-alert - params: - <<: *slack-success-params -- name: stage-milestone - serial: true - plan: - - get: ci-image - - get: git-repo - trigger: false - - task: stage - image: ci-image - timeout: ((task-timeout)) - file: git-repo/ci/tasks/stage.yml - params: - FINAL_RELEASE: ((final-release)) - RELEASE_TYPE: M - <<: *gradle-enterprise-task-params - <<: *docker-hub-task-params - - put: artifactory-repo - params: - <<: *artifactory-repo-put-params - repo: ((artifactory-staging-repository)) - get_params: - threads: 8 - - put: git-repo - params: - repository: stage-git-repo -- name: stage-rc - serial: true - plan: - - get: ci-image - - get: git-repo - trigger: false - - task: stage - image: ci-image - timeout: ((task-timeout)) - file: git-repo/ci/tasks/stage.yml - params: - FINAL_RELEASE: ((final-release)) - RELEASE_TYPE: RC - <<: *gradle-enterprise-task-params - <<: *docker-hub-task-params - - put: artifactory-repo - params: - <<: *artifactory-repo-put-params - repo: ((artifactory-staging-repository)) - get_params: - threads: 8 - - put: git-repo - params: - repository: stage-git-repo -- name: stage-release - serial: true - plan: - - get: ci-image - - get: git-repo - trigger: false - - task: stage - image: ci-image - timeout: ((task-timeout)) - file: git-repo/ci/tasks/stage.yml - params: - FINAL_RELEASE: ((final-release)) - RELEASE_TYPE: RELEASE - <<: *gradle-enterprise-task-params - <<: *docker-hub-task-params - - put: artifactory-repo - params: - <<: *artifactory-repo-put-params - repo: ((artifactory-staging-repository)) - get_params: - threads: 8 - - put: git-repo - params: - repository: stage-git-repo -- name: promote-milestone - serial: true - plan: - - get: git-repo - trigger: false - - get: artifactory-repo - trigger: false - passed: [stage-milestone] - params: - download_artifacts: false - save_build_info: true - - task: promote - file: git-repo/ci/tasks/promote.yml - vars: - dockerhub-proxy-cache: ((dockerhub-proxy-cache)) - params: - RELEASE_TYPE: M - <<: *artifactory-task-params - - task: generate-changelog - file: git-repo/ci/tasks/generate-changelog.yml - vars: - dockerhub-proxy-cache: ((dockerhub-proxy-cache)) - params: - RELEASE_TYPE: M - GITHUB_USERNAME: ((github-username)) - GITHUB_TOKEN: ((github-ci-release-token)) - - put: github-pre-release - params: - name: generated-changelog/tag - tag: generated-changelog/tag - body: generated-changelog/changelog.md -- name: promote-rc - serial: true - plan: - - get: git-repo - trigger: false - - get: artifactory-repo - trigger: false - passed: [stage-rc] - params: - download_artifacts: false - save_build_info: true - - task: promote - file: git-repo/ci/tasks/promote.yml - vars: - dockerhub-proxy-cache: ((dockerhub-proxy-cache)) - params: - RELEASE_TYPE: RC - <<: *artifactory-task-params - - task: generate-changelog - file: git-repo/ci/tasks/generate-changelog.yml - vars: - dockerhub-proxy-cache: ((dockerhub-proxy-cache)) - params: - RELEASE_TYPE: RC - GITHUB_USERNAME: ((github-username)) - GITHUB_TOKEN: ((github-ci-release-token)) - - put: github-pre-release - params: - name: generated-changelog/tag - tag: generated-changelog/tag - body: generated-changelog/changelog.md -- name: promote-release - serial: true - plan: - - get: git-repo - trigger: false - - get: artifactory-repo - trigger: false - passed: [stage-release] - params: - download_artifacts: true - save_build_info: true - threads: 8 - - task: promote - file: git-repo/ci/tasks/promote.yml - vars: - dockerhub-proxy-cache: ((dockerhub-proxy-cache)) - params: - RELEASE_TYPE: RELEASE - <<: *artifactory-task-params - <<: *sonatype-task-params -- name: publish-gradle-plugin - serial: true - plan: - - get: ci-image - - get: git-repo - - get: artifactory-repo - trigger: true - passed: [promote-release] - params: - download_artifacts: true - save_build_info: true - threads: 8 - - task: publish-gradle-plugin - image: ci-image - file: git-repo/ci/tasks/publish-gradle-plugin.yml - params: - <<: *gradle-publish-params -- name: create-github-release - serial: true - plan: - - get: ci-image - - get: git-repo - - get: artifactory-repo - trigger: true - passed: [promote-release] - params: - download_artifacts: false - save_build_info: true - - task: generate-changelog - file: git-repo/ci/tasks/generate-changelog.yml - vars: - dockerhub-proxy-cache: ((dockerhub-proxy-cache)) - params: - RELEASE_TYPE: RELEASE - GITHUB_USERNAME: ((github-username)) - GITHUB_TOKEN: ((github-ci-release-token)) - - put: github-release - params: - name: generated-changelog/tag - tag: generated-changelog/tag - body: generated-changelog/changelog.md -- name: publish-to-sdkman - serial: true - plan: - - get: git-repo - - get: artifactory-repo - passed: [create-github-release] - params: - download_artifacts: false - save_build_info: true - - task: publish-to-sdkman - file: git-repo/ci/tasks/publish-to-sdkman.yml - vars: - dockerhub-proxy-cache: ((dockerhub-proxy-cache)) - params: - <<: *sdkman-task-params - RELEASE_TYPE: RELEASE - BRANCH: ((branch)) - LATEST_GA: false -- name: update-homebrew-tap - serial: true - plan: - - get: ci-image - - get: git-repo - - get: homebrew-tap-repo - - get: artifactory-repo - passed: [create-github-release] - params: - download_artifacts: false - save_build_info: true - - task: update-homebrew-tap - image: ci-image - file: git-repo/ci/tasks/update-homebrew-tap.yml - params: - LATEST_GA: false - - put: homebrew-tap-repo - params: - repository: updated-homebrew-tap-repo -- name: run-system-tests - serial: true - public: true - plan: - - get: ci-image - - get: git-repo - - get: paketo-builder-base-image - trigger: true - - get: daily - trigger: true - - do: - - task: run-system-tests - image: ci-image - <<: *run-system-tests-task-params - on_failure: - do: - - put: slack-alert - params: - <<: *slack-fail-params - - put: slack-alert - params: - <<: *slack-success-params -- name: jdk21-run-system-tests - serial: true - public: true - plan: - - get: ci-image-jdk21 - - get: git-repo - - get: paketo-builder-base-image - trigger: true - - get: daily - trigger: true - - do: - - task: run-system-tests - image: ci-image-jdk21 - privileged: true - timeout: ((task-timeout)) - file: git-repo/ci/tasks/run-system-tests.yml - params: - BRANCH: ((branch)) - TOOLCHAIN_JAVA_VERSION: 21 - <<: *gradle-enterprise-task-params - <<: *docker-hub-task-params - on_failure: - do: - - put: slack-alert - params: - <<: *slack-fail-params - - put: slack-alert - params: - <<: *slack-success-params -groups: -- name: "builds" - jobs: ["build", "jdk21-build", "windows-build"] -- name: "releases" - jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone", "promote-rc", "promote-release", "create-github-release", "publish-gradle-plugin", "publish-to-sdkman", "update-homebrew-tap"] -- name: "system-tests" - jobs: ["run-system-tests", "jdk21-run-system-tests"] -- name: "ci-images" - jobs: ["build-ci-images", "detect-docker-updates", "detect-jdk-updates", "detect-ubuntu-image-updates"] - diff --git a/ci/scripts/build-project-windows.bat b/ci/scripts/build-project-windows.bat deleted file mode 100755 index 3e9e8727291..00000000000 --- a/ci/scripts/build-project-windows.bat +++ /dev/null @@ -1,4 +0,0 @@ -SET "JAVA_HOME=C:\opt\jdk-17" -SET PATH=%PATH%;C:\Program Files\Git\usr\bin -cd git-repo -.\gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false --no-daemon --max-workers=4 build diff --git a/ci/scripts/build-project.sh b/ci/scripts/build-project.sh deleted file mode 100755 index 56e0ad28e83..00000000000 --- a/ci/scripts/build-project.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -set -e - -source $(dirname $0)/common.sh -repository=$(pwd)/distribution-repository - -pushd git-repo > /dev/null -if [[ -d /opt/openjdk-toolchain ]]; then - ./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false --no-daemon --max-workers=4 -PdeploymentRepository=${repository} build publishAllPublicationsToDeploymentRepository -PtoolchainVersion=${TOOLCHAIN_JAVA_VERSION} -Porg.gradle.java.installations.auto-detect=false -Porg.gradle.java.installations.auto-download=false -Porg.gradle.java.installations.paths=/opt/openjdk-toolchain/ -else - ./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false --no-daemon --max-workers=4 -PdeploymentRepository=${repository} build publishAllPublicationsToDeploymentRepository -fi -popd > /dev/null diff --git a/ci/scripts/common.sh b/ci/scripts/common.sh deleted file mode 100644 index bdc3e2b6075..00000000000 --- a/ci/scripts/common.sh +++ /dev/null @@ -1,7 +0,0 @@ -source /opt/concourse-java.sh - -setup_symlinks - -cleanup_maven_repo "org.springframework.boot" - -echo 'systemProp.user.name=concourse' > ~/.gradle/gradle.properties diff --git a/ci/scripts/detect-docker-updates.sh b/ci/scripts/detect-docker-updates.sh deleted file mode 100755 index d517dd8fa2e..00000000000 --- a/ci/scripts/detect-docker-updates.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -latest_version=$(curl -I -s https://github.com/moby/moby/releases/latest | grep -i "location:" | awk '{n=split($0, parts, "/"); print substr(parts[n],2);}' | awk '{$1=$1;print}' | tr -d '\r' | tr -d '\n' ) - -if [[ $latest_version =~ (beta|rc) ]]; then - echo "Skip pre-release versions" - exit 0; -fi - -title_prefix="Upgrade CI to Docker" -milestone_number=$( curl -u ${GITHUB_USERNAME}:${GITHUB_PASSWORD} -s https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/milestones\?state\=open | jq -c --arg MILESTONE "$MILESTONE" '.[] | select(.title==$MILESTONE)' | jq -r '.number') -existing_upgrade_issues=$( curl -u ${GITHUB_USERNAME}:${GITHUB_PASSWORD} -s https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/issues\?labels\=type:%20task\&state\=open\&creator\=spring-builds\&milestone\=${milestone_number} | jq -c --arg TITLE_PREFIX "$title_prefix" '.[] | select(.title | startswith($TITLE_PREFIX))' ) - -latest="https://download.docker.com/linux/static/stable/x86_64/docker-$latest_version.tgz" -current=$( git-repo/ci/images/get-docker-url.sh ) - -if [[ $current = $latest ]]; then - echo "Already up-to-date" - exit 0; -fi - -ISSUE_TITLE="$title_prefix $latest_version" - -if [[ ${existing_upgrade_issues} = "" ]]; then - curl \ - -s \ - -u ${GITHUB_USERNAME}:${GITHUB_PASSWORD} \ - -H "Content-type:application/json" \ - -d "{\"title\":\"${ISSUE_TITLE}\",\"milestone\":\"${milestone_number}\",\"body\": \"${latest}\",\"labels\":[\"type: task\"]}" \ - -f \ - -X \ - POST "https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/issues" > /dev/null || { echo "Failed to create issue" >&2; exit 1; } -else - echo "Issue already exists." -fi \ No newline at end of file diff --git a/ci/scripts/detect-jdk-updates.sh b/ci/scripts/detect-jdk-updates.sh deleted file mode 100755 index e54fc3b8f22..00000000000 --- a/ci/scripts/detect-jdk-updates.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/bash - -report_error() { - echo "Script exited with error $1 on line $2" - exit 1; -} - -trap 'report_error $? $LINENO' ERR - -case "$JDK_VERSION" in - java17) - BASE_URL="https://api.bell-sw.com/v1/liberica/releases?version-feature=17" - ISSUE_TITLE="Upgrade Java 17 version in CI image and .sdkmanrc" - ;; - java21) - BASE_URL="https://api.bell-sw.com/v1/liberica/releases?version-feature=21" - ISSUE_TITLE="Upgrade Java 21 version in CI image" - ;; - *) - echo $"Unknown java version" - exit 1; -esac - -response=$( curl -s ${BASE_URL}\&arch\=x86\&bitness\=64\&bundle-type\=jdk\&os\=linux\&package-type\=tar.gz\&version-modifier\=latest ) -latest=$( jq -r '.[0].downloadUrl' <<< "$response" ) -if [[ ${latest} = "null" || ${latest} = "" ]]; then - echo "Could not parse JDK response: $response" - exit 1; -fi - -current=$( git-repo/ci/images/get-jdk-url.sh ${JDK_VERSION} ) - -if [[ $current = $latest ]]; then - echo "Already up-to-date" - exit 0; -fi - -milestone_response=$( curl -s -u ${GITHUB_USERNAME}:${GITHUB_PASSWORD} https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/milestones\?state\=open ) -milestone_result=$( jq -r -c --arg MILESTONE "$MILESTONE" '.[] | select(has("title")) | select(.title==$MILESTONE)' <<< "$milestone_response" ) -if [[ ${milestone_result} = "null" || ${milestone_result} = "" ]]; then - echo "Could not parse milestone: $milestone_response" - exit 1; -fi - -milestone_number=$( jq -r '.number' <<< "$milestone_result" ) -existing_tasks=$( curl -u ${GITHUB_USERNAME}:${GITHUB_PASSWORD} -s https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/issues\?labels\=type:%20task\&state\=open\&creator\=spring-builds\&milestone\=${milestone_number} ) -existing_jdk_issues=$( jq -r -c --arg TITLE "$ISSUE_TITLE" '.[] | select(has("title")) | select(.title==$TITLE)' <<< "$existing_tasks" ) - -if [[ ${existing_jdk_issues} = "" ]]; then - curl \ - -s \ - -u ${GITHUB_USERNAME}:${GITHUB_PASSWORD} \ - -H "Content-type:application/json" \ - -d "{\"title\":\"${ISSUE_TITLE}\",\"milestone\":\"${milestone_number}\",\"body\": \"${latest}\",\"labels\":[\"type: task\"]}" \ - -f \ - -X \ - POST "https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/issues" > /dev/null || { echo "Failed to create issue" >&2; exit 1; } -else - echo "Issue already exists." -fi diff --git a/ci/scripts/detect-ubuntu-image-updates.sh b/ci/scripts/detect-ubuntu-image-updates.sh deleted file mode 100755 index cbdfc062df8..00000000000 --- a/ci/scripts/detect-ubuntu-image-updates.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash - -ISSUE_TITLE="Upgrade Ubuntu version in CI images" - -ubuntu="jammy" -latest=$( curl -s "https://hub.docker.com/v2/repositories/library/ubuntu/tags/?page_size=1&page=1&name=$ubuntu" | jq -c -r '.results[0].name' | awk '{split($0, parts, "-"); print parts[2]}' ) -current=$( grep "ubuntu:$ubuntu" git-repo/ci/images/ci-image/Dockerfile | awk '{split($0, parts, "-"); print parts[2]}' ) - -if [[ $current = $latest ]]; then - echo "Already up-to-date" - exit 0; -fi - -milestone_number=$( curl -u ${GITHUB_USERNAME}:${GITHUB_PASSWORD} -s https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/milestones\?state\=open | jq -c --arg MILESTONE "$MILESTONE" '.[] | select(.title==$MILESTONE)' | jq -r '.number') -existing_tasks=$( curl -u ${GITHUB_USERNAME}:${GITHUB_PASSWORD} -s https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/issues\?labels\=type:%20task\&state\=open\&creator\=spring-builds\&milestone\=${milestone_number} ) -existing_upgrade_issues=$( echo "$existing_tasks" | jq -c --arg TITLE "$ISSUE_TITLE" '.[] | select(.title==$TITLE)' ) - -if [[ ${existing_upgrade_issues} = "" ]]; then - curl \ - -s \ - -u ${GITHUB_USERNAME}:${GITHUB_PASSWORD} \ - -H "Content-type:application/json" \ - -d "{\"title\":\"${ISSUE_TITLE}\",\"milestone\":\"${milestone_number}\",\"body\": \"Upgrade to ubuntu:${ubuntu}-${latest}\",\"labels\":[\"type: task\"]}" \ - -f \ - -X \ - POST "https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/issues" > /dev/null || { echo "Failed to create issue" >&2; exit 1; } -else - echo "Issue already exists." -fi diff --git a/ci/scripts/generate-changelog.sh b/ci/scripts/generate-changelog.sh deleted file mode 100755 index d3d2b97e5db..00000000000 --- a/ci/scripts/generate-changelog.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -e - -CONFIG_DIR=git-repo/ci/config -version=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.modules[0].id' | sed 's/.*:.*:\(.*\)/\1/' ) - -java -jar /github-changelog-generator.jar \ - --spring.config.location=${CONFIG_DIR}/changelog-generator.yml \ - ${version} generated-changelog/changelog.md - -echo ${version} > generated-changelog/version -echo v${version} > generated-changelog/tag diff --git a/ci/scripts/promote.sh b/ci/scripts/promote.sh deleted file mode 100755 index bd1600191a7..00000000000 --- a/ci/scripts/promote.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -CONFIG_DIR=git-repo/ci/config - -version=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.modules[0].id' | sed 's/.*:.*:\(.*\)/\1/' ) -export BUILD_INFO_LOCATION=$(pwd)/artifactory-repo/build-info.json - -java -jar /concourse-release-scripts.jar \ - --spring.config.location=${CONFIG_DIR}/release-scripts.yml \ - publishToCentral $RELEASE_TYPE $BUILD_INFO_LOCATION artifactory-repo || { exit 1; } - -java -jar /concourse-release-scripts.jar \ - --spring.config.location=${CONFIG_DIR}/release-scripts.yml \ - promote $RELEASE_TYPE $BUILD_INFO_LOCATION || { exit 1; } - -echo "Promotion complete" -echo $version > version/version diff --git a/ci/scripts/publish-gradle-plugin.sh b/ci/scripts/publish-gradle-plugin.sh deleted file mode 100755 index 5ee841d430f..00000000000 --- a/ci/scripts/publish-gradle-plugin.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -source $(dirname $0)/common.sh - -version=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.modules[0].id' | sed 's/.*:.*:\(.*\)/\1/' ) - -git-repo/gradlew publishExisting -p git-repo/ci/config/gradle-plugin-publishing -Pgradle.publish.key=${GRADLE_PUBLISH_KEY} -Pgradle.publish.secret=${GRADLE_PUBLISH_SECRET} -PbootVersion=${version} -PrepositoryRoot=$(pwd)/artifactory-repo diff --git a/ci/scripts/publish-to-sdkman.sh b/ci/scripts/publish-to-sdkman.sh deleted file mode 100755 index 9cf273d2345..00000000000 --- a/ci/scripts/publish-to-sdkman.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -CONFIG_DIR=git-repo/ci/config - -version=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.modules[0].id' | sed 's/.*:.*:\(.*\)/\1/' ) - -java -jar /concourse-release-scripts.jar \ - --spring.config.location=${CONFIG_DIR}/release-scripts.yml \ - publishToSdkman $RELEASE_TYPE $version $LATEST_GA || { exit 1; } - -echo "Push to SDKMAN complete" diff --git a/ci/scripts/run-system-tests.sh b/ci/scripts/run-system-tests.sh deleted file mode 100755 index c03ce1e823e..00000000000 --- a/ci/scripts/run-system-tests.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -e - -source $(dirname $0)/common.sh - -pushd git-repo > /dev/null -if [[ -d /opt/openjdk-toolchain ]]; then - ./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false --no-daemon --max-workers=4 systemTest -PtoolchainVersion=${TOOLCHAIN_JAVA_VERSION} -Porg.gradle.java.installations.auto-detect=false -Porg.gradle.java.installations.auto-download=false -Porg.gradle.java.installations.paths=/opt/openjdk-toolchain/ -else - ./gradlew -Dorg.gradle.internal.launcher.welcomeMessageEnabled=false --no-daemon --max-workers=4 systemTest -fi -popd > /dev/null diff --git a/ci/scripts/stage.sh b/ci/scripts/stage.sh deleted file mode 100755 index 981aeb2ec7c..00000000000 --- a/ci/scripts/stage.sh +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -set -e - -source $(dirname $0)/common.sh -repository=$(pwd)/distribution-repository - -pushd git-repo > /dev/null -git fetch --tags --all > /dev/null -popd > /dev/null - -git clone git-repo stage-git-repo > /dev/null - -pushd stage-git-repo > /dev/null - -snapshotVersion=$( awk -F '=' '$1 == "version" { print $2 }' gradle.properties ) -if [[ $RELEASE_TYPE = "M" ]]; then - stageVersion=$( get_next_milestone_release $snapshotVersion) - nextVersion=$snapshotVersion -elif [[ $RELEASE_TYPE = "RC" ]]; then - stageVersion=$( get_next_rc_release $snapshotVersion) - nextVersion=$snapshotVersion -elif [[ $RELEASE_TYPE = "RELEASE" ]]; then - stageVersion=$( get_next_release $snapshotVersion) - nextVersion=$( bump_version_number $snapshotVersion) -else - echo "Unknown release type $RELEASE_TYPE" >&2; exit 1; -fi - -echo "Staging $stageVersion (next version will be $nextVersion)" -sed -i "s/version=$snapshotVersion/version=$stageVersion/" gradle.properties - -git config user.name "Spring Builds" > /dev/null -git config user.email "spring-builds@users.noreply.github.com" > /dev/null -git add gradle.properties > /dev/null -git commit -m"Release v$stageVersion" > /dev/null -git tag -a "v$stageVersion" -m"Release v$stageVersion" > /dev/null - -./gradlew --no-daemon --max-workers=4 -PdeploymentRepository=${repository} build publishAllPublicationsToDeploymentRepository - -git reset --hard HEAD^ > /dev/null -if [[ $FINAL_RELEASE != true && $nextVersion != $snapshotVersion ]]; then - echo "Setting next development version (v$nextVersion)" - sed -i "s/version=$snapshotVersion/version=$nextVersion/" gradle.properties - git add gradle.properties > /dev/null - git commit -m"Next development version (v$nextVersion)" > /dev/null -fi - -echo "DONE" - -popd > /dev/null diff --git a/ci/scripts/update-homebrew-tap.sh b/ci/scripts/update-homebrew-tap.sh deleted file mode 100755 index 768b2400ab1..00000000000 --- a/ci/scripts/update-homebrew-tap.sh +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -set -e - -version=$( cat artifactory-repo/build-info.json | jq -r '.buildInfo.modules[0].id' | sed 's/.*:.*:\(.*\)/\1/' ) - -git clone homebrew-tap-repo updated-homebrew-tap-repo > /dev/null - -if [[ $LATEST_GA = true ]]; then -pushd updated-homebrew-tap-repo > /dev/null - curl https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-cli/${version}/spring-boot-cli-${version}-homebrew.rb --output spring-boot-cli-${version}-homebrew.rb - rm spring-boot.rb - mv spring-boot-cli-*.rb spring-boot.rb - git config user.name "Spring Builds" > /dev/null - git config user.email "spring-builds@users.noreply.github.com" > /dev/null - git add spring-boot.rb > /dev/null - git commit -m "Upgrade to Spring Boot ${version}" > /dev/null - echo "DONE" -popd > /dev/null -fi diff --git a/ci/tasks/build-ci-image.yml b/ci/tasks/build-ci-image.yml deleted file mode 100644 index 41945de8d1b..00000000000 --- a/ci/tasks/build-ci-image.yml +++ /dev/null @@ -1,30 +0,0 @@ ---- -platform: linux -image_resource: - type: registry-image - source: - tag: 0.11.1 - repository: ((dockerhub-proxy-cache))concourse/oci-build-task - username: ((docker-hub-username)) - password: ((docker-hub-password)) -inputs: -- name: ci-images-git-repo -outputs: -- name: image -caches: -- path: ci-image-cache -params: - CONTEXT: ci-images-git-repo/ci/images - DOCKERFILE: ci-images-git-repo/ci/images/((ci-image-name))/Dockerfile - DOCKER_HUB_AUTH: ((docker-hub-auth)) - BUILD_ARG_DOCKER_PROXY_CACHE: ((dockerhub-proxy-cache)) -run: - path: /bin/sh - args: - - "-c" - - | - mkdir -p /root/.docker - cat > /root/.docker/config.json < /root/.docker/config.json < /root/.docker/config.json < - *
  • Approves all aliases (Used for Windows CI on - * Concourse) + *
  • Approves all aliases to allow access to unusually named static resources *
  • Relaxes URI compliance to allow access to static resources with {@code %} in their file name. * * @@ -47,7 +46,7 @@ public class JettyServerCustomizerConfig { return (server) -> { ContextHandler handler = (ContextHandler) server.getHandler(); handler.addAliasCheck((path, resource) -> true); - + for (Connector connector : server.getConnectors()) { connector.getConnectionFactory(HttpConnectionFactory.class).getHttpConfiguration() .setUriCompliance(UriCompliance.LEGACY); diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jetty-jsp/src/test/java/smoketest/jetty/jsp/SampleWebJspApplicationTests.java b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jetty-jsp/src/test/java/smoketest/jetty/jsp/SampleWebJspApplicationTests.java index 359b8ec26c9..5c41d60a77c 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jetty-jsp/src/test/java/smoketest/jetty/jsp/SampleWebJspApplicationTests.java +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jetty-jsp/src/test/java/smoketest/jetty/jsp/SampleWebJspApplicationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2022 the original author or authors. + * Copyright 2012-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,16 +16,12 @@ package smoketest.jetty.jsp; -import org.eclipse.jetty.server.handler.ContextHandler; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; -import org.springframework.boot.web.embedded.jetty.JettyServerCustomizer; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; @@ -36,8 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Phillip Webb */ -@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, - classes = { SampleWebJspApplicationTests.JettyCustomizerConfig.class, SampleJettyJspApplication.class }) +@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) class SampleWebJspApplicationTests { @Autowired @@ -50,19 +45,4 @@ class SampleWebJspApplicationTests { assertThat(entity.getBody()).contains("/resources/text.txt"); } - @Configuration(proxyBeanMethods = false) - static class JettyCustomizerConfig { - - // To allow aliased resources on Concourse Windows CI (See gh-15553) to be served - // as static resources. - @Bean - JettyServerCustomizer jettyServerCustomizer() { - return (server) -> { - ContextHandler handler = (ContextHandler) server.getHandler(); - handler.addAliasCheck((path, resource) -> true); - }; - } - - } - }