Skip to content

Commit

Permalink
Automate Ubuntu base image upgrade
Browse files Browse the repository at this point in the history
  • Loading branch information
dreis2211 authored and snicoll committed Mar 1, 2020
1 parent 3df4462 commit 4136300
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 1 deletion.
17 changes: 16 additions & 1 deletion ci/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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"]
28 changes: 28 additions & 0 deletions ci/scripts/detect-ubuntu-image-updates.sh
Original file line number Diff line number Diff line change
@@ -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
11 changes: 11 additions & 0 deletions ci/tasks/detect-ubuntu-image-updates.yml
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 4136300

Please sign in to comment.