Automate Ubuntu base image upgrade

See gh-20355
This commit is contained in:
dreis2211 2020-03-01 13:16:54 +01:00 committed by Stephane Nicoll
parent 3df446227e
commit 4136300235
3 changed files with 55 additions and 1 deletions

View File

@ -163,6 +163,21 @@ jobs:
GITHUB_USERNAME: ((github-username))
JDK_VERSION: java11
image: spring-boot-ci-image
- name: detect-ubuntu-image-updates
plan:
- get: git-repo
- get: every-wednesday
trigger: true
- get: spring-boot-ci-image
- do:
- task: detect-ubuntu-image-updates
file: git-repo/ci/tasks/detect-ubuntu-image-updates.yml
params:
GITHUB_REPO: spring-boot
GITHUB_ORGANIZATION: spring-projects
GITHUB_PASSWORD: ((github-password))
GITHUB_USERNAME: ((github-username))
image: spring-boot-ci-image
- name: build
serial: true
public: true
@ -525,6 +540,6 @@ groups:
- name: "Release"
jobs: ["stage-milestone", "stage-rc", "stage-release", "promote-milestone", "promote-rc", "promote-release", "sync-to-maven-central"]
- name: "CI Images"
jobs: ["build-spring-boot-ci-images", "detect-jdk-updates"]
jobs: ["build-spring-boot-ci-images", "detect-jdk-updates", "detect-ubuntu-image-updates"]
- name: "Build Pull Requests"
jobs: ["build-pull-requests"]

View File

@ -0,0 +1,28 @@
#!/bin/bash
ISSUE_TITLE="Upgrade Ubuntu version in CI images"
ubuntu="bionic"
latest=$( curl -s "https://partner-images.canonical.com/core/$ubuntu/current/unpacked/build-info.txt" | awk '{split($0, parts, "="); print parts[2]}' )
current=$( grep "ubuntu:$ubuntu" git-repo/ci/images/spring-boot-ci-image/Dockerfile | awk '{split($0, parts, "-"); print parts[2]}' )
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}/issues\?labels\=type:%20task\&state\=open\&creator\=spring-buildmaster )
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}\",\"body\": \"Upgrade to ubuntu:${ubuntu}-${latest}\",\"labels\":[\"status: waiting-for-triage\",\"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

View File

@ -0,0 +1,11 @@
---
platform: linux
inputs:
- name: git-repo
params:
GITHUB_REPO:
GITHUB_ORGANIZATION:
GITHUB_PASSWORD:
GITHUB_USERNAME:
run:
path: git-repo/ci/scripts/detect-ubuntu-image-updates.sh