43 changed files with 4 additions and 1545 deletions
@ -1,18 +0,0 @@
@@ -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.1.x -c ci/pipeline.yml -l ci/parameters.yml |
||||
---- |
||||
|
||||
NOTE: This assumes that you have credhub integration configured with the appropriate |
||||
secrets. |
||||
@ -1,23 +0,0 @@
@@ -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+).*' |
||||
@ -1,13 +0,0 @@
@@ -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" |
||||
} |
||||
@ -1,11 +0,0 @@
@@ -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" |
||||
@ -1,21 +0,0 @@
@@ -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 <image-folder>/Dockerfile . |
||||
---- |
||||
|
||||
For example |
||||
|
||||
---- |
||||
$ docker build --no-cache -f ci-image/Dockerfile . |
||||
---- |
||||
|
||||
To test run: |
||||
|
||||
---- |
||||
$ docker run -it --entrypoint /bin/bash <SHA> |
||||
---- |
||||
@ -1,12 +0,0 @@
@@ -1,12 +0,0 @@
|
||||
ARG DOCKER_PROXY_CACHE= |
||||
FROM ${DOCKER_PROXY_CACHE}ubuntu:jammy-20240405 |
||||
|
||||
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 JAVA_HOME /opt/openjdk |
||||
ENV PATH $JAVA_HOME/bin:$PATH |
||||
ADD docker-lib.sh /docker-lib.sh |
||||
@ -1,12 +0,0 @@
@@ -1,12 +0,0 @@
|
||||
ARG DOCKER_PROXY_CACHE= |
||||
FROM ${DOCKER_PROXY_CACHE}ubuntu:jammy-20240405 |
||||
|
||||
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 JAVA_HOME /opt/openjdk |
||||
ENV PATH $JAVA_HOME/bin:$PATH |
||||
ADD docker-lib.sh /docker-lib.sh |
||||
@ -1,97 +0,0 @@
@@ -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 |
||||
} |
||||
@ -1,5 +0,0 @@
@@ -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" |
||||
@ -1,5 +0,0 @@
@@ -1,5 +0,0 @@
|
||||
#!/bin/bash |
||||
set -e |
||||
|
||||
version="26.1.0" |
||||
echo "https://download.docker.com/linux/static/stable/x86_64/docker-$version.tgz"; |
||||
@ -1,14 +0,0 @@
@@ -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 |
||||
@ -1,63 +0,0 @@
@@ -1,63 +0,0 @@
|
||||
#!/bin/bash |
||||
set -ex |
||||
|
||||
########################################################### |
||||
# UTILS |
||||
########################################################### |
||||
|
||||
export DEBIAN_FRONTEND=noninteractive |
||||
apt-get update |
||||
apt-get install --no-install-recommends -y tzdata ca-certificates net-tools libxml2-utils git curl libudev1 libxml2-utils iptables iproute2 jq |
||||
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 |
||||
@ -1,16 +0,0 @@
@@ -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: "3.1.x" |
||||
milestone: "3.1.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/ |
||||
@ -1,678 +0,0 @@
@@ -1,678 +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 |
||||
artifact_set: |
||||
- include: |
||||
- "/**/spring-boot-docs-*.zip" |
||||
properties: |
||||
"zip.type": "docs" |
||||
"zip.deployed": "false" |
||||
slack-fail-params: &slack-fail-params |
||||
text: > |
||||
:concourse-failed: <!here> <https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}|${BUILD_PIPELINE_NAME} ${BUILD_JOB_NAME} 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: <https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}|${BUILD_PIPELINE_NAME} ${BUILD_JOB_NAME} was successful!> |
||||
[$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"] |
||||
|
||||
@ -1,4 +0,0 @@
@@ -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 |
||||
@ -1,13 +0,0 @@
@@ -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 |
||||
@ -1,7 +0,0 @@
@@ -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 |
||||
@ -1,35 +0,0 @@
@@ -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 |
||||
@ -1,60 +0,0 @@
@@ -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 |
||||
@ -1,29 +0,0 @@
@@ -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 |
||||
@ -1,12 +0,0 @@
@@ -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 |
||||
@ -1,17 +0,0 @@
@@ -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 |
||||
@ -1,7 +0,0 @@
@@ -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 |
||||
@ -1,11 +0,0 @@
@@ -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" |
||||
@ -1,12 +0,0 @@
@@ -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 |
||||
@ -1,50 +0,0 @@
@@ -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 |
||||
@ -1,19 +0,0 @@
@@ -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 |
||||
@ -1,30 +0,0 @@
@@ -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 <<EOF |
||||
{ "auths": { "https://index.docker.io/v1/": { "auth": "$DOCKER_HUB_AUTH" }}} |
||||
EOF |
||||
build |
||||
@ -1,16 +0,0 @@
@@ -1,16 +0,0 @@
|
||||
--- |
||||
platform: windows |
||||
inputs: |
||||
- name: git-repo |
||||
outputs: |
||||
- name: git-repo |
||||
params: |
||||
BRANCH: |
||||
CI: true |
||||
GRADLE_ENTERPRISE_ACCESS_KEY: |
||||
GRADLE_ENTERPRISE_CACHE_URL: |
||||
GRADLE_ENTERPRISE_CACHE_USERNAME: |
||||
GRADLE_ENTERPRISE_CACHE_PASSWORD: |
||||
GRADLE_ENTERPRISE_URL: https://ge.spring.io |
||||
run: |
||||
path: git-repo/ci/scripts/build-project-windows.bat |
||||
@ -1,31 +0,0 @@
@@ -1,31 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
inputs: |
||||
- name: git-repo |
||||
outputs: |
||||
- name: distribution-repository |
||||
- name: git-repo |
||||
caches: |
||||
- path: gradle |
||||
- path: maven |
||||
params: |
||||
BRANCH: |
||||
CI: true |
||||
GRADLE_ENTERPRISE_ACCESS_KEY: |
||||
GRADLE_ENTERPRISE_CACHE_URL: |
||||
GRADLE_ENTERPRISE_CACHE_USERNAME: |
||||
GRADLE_ENTERPRISE_CACHE_PASSWORD: |
||||
GRADLE_ENTERPRISE_URL: https://ge.spring.io |
||||
DOCKER_HUB_MIRROR: |
||||
run: |
||||
path: bash |
||||
args: |
||||
- "-ec" |
||||
- | |
||||
mkdir -p /root/.docker |
||||
cat > /root/.docker/config.json <<EOF |
||||
{ "auths": { "https://index.docker.io/v1/": { "auth": "$DOCKER_HUB_AUTH" }}} |
||||
EOF |
||||
source /docker-lib.sh |
||||
start_docker $DOCKER_HUB_MIRROR |
||||
${PWD}/git-repo/ci/scripts/build-project.sh |
||||
@ -1,12 +0,0 @@
@@ -1,12 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
inputs: |
||||
- name: git-repo |
||||
params: |
||||
GITHUB_REPO: |
||||
GITHUB_ORGANIZATION: |
||||
GITHUB_PASSWORD: |
||||
GITHUB_USERNAME: |
||||
MILESTONE: |
||||
run: |
||||
path: git-repo/ci/scripts/detect-docker-updates.sh |
||||
@ -1,13 +0,0 @@
@@ -1,13 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
inputs: |
||||
- name: git-repo |
||||
params: |
||||
GITHUB_REPO: |
||||
GITHUB_ORGANIZATION: |
||||
GITHUB_PASSWORD: |
||||
GITHUB_USERNAME: |
||||
JDK_VERSION: |
||||
MILESTONE: |
||||
run: |
||||
path: git-repo/ci/scripts/detect-jdk-updates.sh |
||||
@ -1,12 +0,0 @@
@@ -1,12 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
inputs: |
||||
- name: git-repo |
||||
params: |
||||
GITHUB_REPO: |
||||
GITHUB_ORGANIZATION: |
||||
GITHUB_PASSWORD: |
||||
GITHUB_USERNAME: |
||||
MILESTONE: |
||||
run: |
||||
path: git-repo/ci/scripts/detect-ubuntu-image-updates.sh |
||||
@ -1,22 +0,0 @@
@@ -1,22 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
image_resource: |
||||
type: registry-image |
||||
source: |
||||
repository: ((dockerhub-proxy-cache))springio/github-changelog-generator |
||||
tag: '0.0.8' |
||||
username: ((docker-hub-username)) |
||||
password: ((docker-hub-password)) |
||||
inputs: |
||||
- name: git-repo |
||||
- name: artifactory-repo |
||||
outputs: |
||||
- name: generated-changelog |
||||
params: |
||||
GITHUB_ORGANIZATION: |
||||
GITHUB_REPO: |
||||
GITHUB_USERNAME: |
||||
GITHUB_TOKEN: |
||||
RELEASE_TYPE: |
||||
run: |
||||
path: git-repo/ci/scripts/generate-changelog.sh |
||||
@ -1,25 +0,0 @@
@@ -1,25 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
image_resource: |
||||
type: registry-image |
||||
source: |
||||
repository: ((dockerhub-proxy-cache))springio/concourse-release-scripts |
||||
tag: '0.4.0' |
||||
username: ((docker-hub-username)) |
||||
password: ((docker-hub-password)) |
||||
inputs: |
||||
- name: git-repo |
||||
- name: artifactory-repo |
||||
outputs: |
||||
- name: version |
||||
params: |
||||
RELEASE_TYPE: |
||||
ARTIFACTORY_URL: |
||||
ARTIFACTORY_USERNAME: |
||||
ARTIFACTORY_PASSWORD: |
||||
SONATYPE_USERNAME: |
||||
SONATYPE_PASSWORD: |
||||
SONATYPE_URL: |
||||
SONATYPE_STAGING_PROFILE_ID: |
||||
run: |
||||
path: git-repo/ci/scripts/promote.sh |
||||
@ -1,10 +0,0 @@
@@ -1,10 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
inputs: |
||||
- name: artifactory-repo |
||||
- name: git-repo |
||||
params: |
||||
GRADLE_PUBLISH_KEY: |
||||
GRADLE_PUBLISH_SECRET: |
||||
run: |
||||
path: git-repo/ci/scripts/publish-gradle-plugin.sh |
||||
@ -1,20 +0,0 @@
@@ -1,20 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
image_resource: |
||||
type: registry-image |
||||
source: |
||||
repository: ((dockerhub-proxy-cache))springio/concourse-release-scripts |
||||
tag: '0.4.0' |
||||
username: ((docker-hub-username)) |
||||
password: ((docker-hub-password)) |
||||
inputs: |
||||
- name: git-repo |
||||
- name: artifactory-repo |
||||
params: |
||||
RELEASE_TYPE: |
||||
BRANCH: |
||||
LATEST_GA: |
||||
SDKMAN_CONSUMER_KEY: |
||||
SDKMAN_CONSUMER_TOKEN: |
||||
run: |
||||
path: git-repo/ci/scripts/publish-to-sdkman.sh |
||||
@ -1,29 +0,0 @@
@@ -1,29 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
inputs: |
||||
- name: git-repo |
||||
outputs: |
||||
- name: git-repo |
||||
caches: |
||||
- path: gradle |
||||
params: |
||||
BRANCH: |
||||
CI: true |
||||
GRADLE_ENTERPRISE_ACCESS_KEY: |
||||
GRADLE_ENTERPRISE_CACHE_URL: |
||||
GRADLE_ENTERPRISE_CACHE_USERNAME: |
||||
GRADLE_ENTERPRISE_CACHE_PASSWORD: |
||||
GRADLE_ENTERPRISE_URL: https://ge.spring.io |
||||
DOCKER_HUB_MIRROR: |
||||
run: |
||||
path: bash |
||||
args: |
||||
- -ec |
||||
- | |
||||
mkdir -p /root/.docker |
||||
cat > /root/.docker/config.json <<EOF |
||||
{ "auths": { "https://index.docker.io/v1/": { "auth": "$DOCKER_HUB_AUTH" }}} |
||||
EOF |
||||
source /docker-lib.sh |
||||
start_docker $DOCKER_HUB_MIRROR |
||||
${PWD}/git-repo/ci/scripts/run-system-tests.sh |
||||
@ -1,19 +0,0 @@
@@ -1,19 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
inputs: |
||||
- name: git-repo |
||||
outputs: |
||||
- name: stage-git-repo |
||||
- name: distribution-repository |
||||
params: |
||||
RELEASE_TYPE: |
||||
CI: true |
||||
FINAL_RELEASE: |
||||
GRADLE_ENTERPRISE_CACHE_URL: |
||||
GRADLE_ENTERPRISE_CACHE_USERNAME: |
||||
GRADLE_ENTERPRISE_CACHE_PASSWORD: |
||||
GRADLE_ENTERPRISE_URL: https://ge.spring.io |
||||
caches: |
||||
- path: gradle |
||||
run: |
||||
path: git-repo/ci/scripts/stage.sh |
||||
@ -1,12 +0,0 @@
@@ -1,12 +0,0 @@
|
||||
--- |
||||
platform: linux |
||||
inputs: |
||||
- name: git-repo |
||||
- name: homebrew-tap-repo |
||||
- name: artifactory-repo |
||||
outputs: |
||||
- name: updated-homebrew-tap-repo |
||||
params: |
||||
LATEST_GA: |
||||
run: |
||||
path: git-repo/ci/scripts/update-homebrew-tap.sh |
||||
Loading…
Reference in new issue