Merge pull request #20530 from dreis2211
* pr/20530: Polish "Automate Docker update in CI" Automate Docker updates in CI Closes gh-20530
This commit is contained in:
commit
8c8d7af14d
|
@ -0,0 +1,5 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
version="19.03.7"
|
||||||
|
echo "https://download.docker.com/linux/static/stable/x86_64/docker-$version.tgz";
|
|
@ -27,9 +27,10 @@ test -f /opt/openjdk/bin/javac
|
||||||
###########################################################
|
###########################################################
|
||||||
# DOCKER
|
# DOCKER
|
||||||
###########################################################
|
###########################################################
|
||||||
|
DOCKER_URL=$( ./get-docker-url.sh )
|
||||||
|
|
||||||
cd /
|
cd /
|
||||||
curl -L https://download.docker.com/linux/static/stable/x86_64/docker-19.03.7.tgz | tar zx
|
curl -L ${DOCKER_URL} | tar zx
|
||||||
mv /docker/* /bin/
|
mv /docker/* /bin/
|
||||||
chmod +x /bin/docker*
|
chmod +x /bin/docker*
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
docker-upgrade-issue-title: "Upgrade Docker version in CI"
|
||||||
email-server: "smtp.svc.pivotal.io"
|
email-server: "smtp.svc.pivotal.io"
|
||||||
email-from: "ci@spring.io"
|
email-from: "ci@spring.io"
|
||||||
email-to: ["spring-boot-dev@pivotal.io"]
|
email-to: ["spring-boot-dev@pivotal.io"]
|
||||||
|
|
|
@ -27,6 +27,14 @@ resources:
|
||||||
username: ((github-username))
|
username: ((github-username))
|
||||||
password: ((github-password))
|
password: ((github-password))
|
||||||
branch: ((branch))
|
branch: ((branch))
|
||||||
|
- name: git-repo-ci-docker
|
||||||
|
type: git
|
||||||
|
icon: github-circle
|
||||||
|
source:
|
||||||
|
uri: ((github-repo))
|
||||||
|
username: ((github-username))
|
||||||
|
password: ((github-password))
|
||||||
|
branch: ci-docker-((branch))
|
||||||
- name: git-repo-windows
|
- name: git-repo-windows
|
||||||
type: git
|
type: git
|
||||||
source:
|
source:
|
||||||
|
@ -178,6 +186,34 @@ jobs:
|
||||||
GITHUB_PASSWORD: ((github-password))
|
GITHUB_PASSWORD: ((github-password))
|
||||||
GITHUB_USERNAME: ((github-username))
|
GITHUB_USERNAME: ((github-username))
|
||||||
image: spring-boot-ci-image
|
image: spring-boot-ci-image
|
||||||
|
- name: detect-docker-updates
|
||||||
|
plan:
|
||||||
|
- get: git-repo
|
||||||
|
- get: every-wednesday
|
||||||
|
trigger: true
|
||||||
|
- get: spring-boot-ci-image
|
||||||
|
- do:
|
||||||
|
- task: detect-docker-updates
|
||||||
|
file: git-repo/ci/tasks/detect-docker-updates.yml
|
||||||
|
params:
|
||||||
|
GITHUB_REPO: spring-boot
|
||||||
|
GITHUB_ORGANIZATION: spring-projects
|
||||||
|
ISSUE_TITLE: ((docker-upgrade-issue-title))
|
||||||
|
image: spring-boot-ci-image
|
||||||
|
- put: git-repo-ci-docker
|
||||||
|
params:
|
||||||
|
repository: git-repo-updated
|
||||||
|
force: true
|
||||||
|
- task: create-pull-request
|
||||||
|
file: git-repo/ci/tasks/create-pull-request.yml
|
||||||
|
params:
|
||||||
|
BASE_BRANCH: ((branch))
|
||||||
|
BRANCH: ci-docker-((branch))
|
||||||
|
GITHUB_REPO: spring-boot
|
||||||
|
GITHUB_ORGANIZATION: spring-projects
|
||||||
|
GITHUB_PASSWORD: ((github-password))
|
||||||
|
GITHUB_USERNAME: ((github-username))
|
||||||
|
ISSUE_TITLE: ((docker-upgrade-issue-title))
|
||||||
- name: build
|
- name: build
|
||||||
serial: true
|
serial: true
|
||||||
public: true
|
public: true
|
||||||
|
@ -540,6 +576,6 @@ groups:
|
||||||
- name: "Release"
|
- name: "Release"
|
||||||
jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone", "promote-rc", "promote-release", "sync-to-maven-central"]
|
jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone", "promote-rc", "promote-release", "sync-to-maven-central"]
|
||||||
- name: "CI Images"
|
- name: "CI Images"
|
||||||
jobs: ["build-spring-boot-ci-images", "detect-jdk-updates", "detect-ubuntu-image-updates"]
|
jobs: ["build-spring-boot-ci-images", "detect-docker-updates", "detect-jdk-updates", "detect-ubuntu-image-updates"]
|
||||||
- name: "Build Pull Requests"
|
- name: "Build Pull Requests"
|
||||||
jobs: ["build-pull-requests"]
|
jobs: ["build-pull-requests"]
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
commit_message=$( cat commit-details/message )
|
||||||
|
|
||||||
|
if [[ ${commit_message} != "" ]]; then
|
||||||
|
curl \
|
||||||
|
-s \
|
||||||
|
-u ${GITHUB_USERNAME}:${GITHUB_PASSWORD} \
|
||||||
|
-H "Content-type:application/json" \
|
||||||
|
-d "{\"head\":\"${BRANCH}\",\"base\":\"${BASE_BRANCH}\",\"title\":\"${ISSUE_TITLE}\",\"body\":\"\",\"labels\":[\"status: waiting-for-triage\",\"type: task\"]}" \
|
||||||
|
-f \
|
||||||
|
-X \
|
||||||
|
POST "https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/pulls" > /dev/null || { echo "Failed to create pull request" >&2; exit 1; }
|
||||||
|
else
|
||||||
|
echo "Already up-to-date"
|
||||||
|
fi
|
|
@ -0,0 +1,34 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
latest_version=$(curl -I -s https://github.com/docker/docker-ce/releases/latest | grep "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
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
existing_tasks=$( curl -s https://api.github.com/repos/${GITHUB_ORGANIZATION}/${GITHUB_REPO}/pulls\?labels\=type:%20task\&state\=open\&creator\=spring-buildmaster )
|
||||||
|
existing_upgrade_issues=$( echo "$existing_tasks" | jq -c --arg TITLE "$ISSUE_TITLE" '.[] | select(.title==$TITLE)' )
|
||||||
|
|
||||||
|
git clone git-repo git-repo-updated > /dev/null
|
||||||
|
|
||||||
|
if [[ ${existing_upgrade_issues} = "" ]]; then
|
||||||
|
pushd git-repo-updated > /dev/null
|
||||||
|
git config user.name "Spring Buildmaster" > /dev/null
|
||||||
|
git config user.email "buildmaster@springframework.org" > /dev/null
|
||||||
|
sed -i "s/version=.*/version=\"$latest_version\"/" ci/images/get-docker-url.sh
|
||||||
|
git add ci/images/get-docker-url.sh > /dev/null
|
||||||
|
commit_message="Upgrade to Docker $latest_version in CI"
|
||||||
|
git commit -m "$commit_message" > /dev/null
|
||||||
|
echo ${commit_message} > commit-details/message
|
||||||
|
else
|
||||||
|
echo "Pull request already exists."
|
||||||
|
fi
|
|
@ -0,0 +1,15 @@
|
||||||
|
---
|
||||||
|
platform: linux
|
||||||
|
inputs:
|
||||||
|
- name: git-repo
|
||||||
|
- name: commit-details
|
||||||
|
params:
|
||||||
|
BASE_BRANCH:
|
||||||
|
BRANCH:
|
||||||
|
GITHUB_REPO:
|
||||||
|
GITHUB_ORGANIZATION:
|
||||||
|
GITHUB_PASSWORD:
|
||||||
|
GITHUB_USERNAME:
|
||||||
|
ISSUE_TITLE:
|
||||||
|
run:
|
||||||
|
path: git-repo/ci/scripts/create-pull-request.sh
|
|
@ -0,0 +1,13 @@
|
||||||
|
---
|
||||||
|
platform: linux
|
||||||
|
inputs:
|
||||||
|
- name: git-repo
|
||||||
|
outputs:
|
||||||
|
- name: git-repo-updated
|
||||||
|
- name: commit-details
|
||||||
|
params:
|
||||||
|
GITHUB_REPO:
|
||||||
|
GITHUB_ORGANIZATION:
|
||||||
|
ISSUE_TITLE:
|
||||||
|
run:
|
||||||
|
path: git-repo/ci/scripts/detect-docker-updates.sh
|
Loading…
Reference in New Issue