Create automated job for sample configuration files
The keystone team updates the sample configuration file in it's own patch, so to not stomp on other patches. We've had to update the configuration files manually, but we should create an automated job. Since it's just running tox -e genconfig and checking diff output. Change-Id: I0e294b857d9bbf73e7f9c0d0bdee61648fb999bd
This commit is contained in:
parent
b2523895ca
commit
2fb336967c
@ -33,3 +33,17 @@
|
||||
- test-results
|
||||
- devstack-logs
|
||||
- console-log
|
||||
|
||||
- job:
|
||||
name: keystone-propose-config-updates
|
||||
node: proposal
|
||||
|
||||
builders:
|
||||
- revoke-sudo
|
||||
- link-logs
|
||||
- net-info
|
||||
- gerrit-git-prep
|
||||
- shell: /usr/local/jenkins/slave_scripts/propose_updated_config_file.sh openstack/keystone master
|
||||
|
||||
publishers:
|
||||
- console-log
|
||||
|
73
jenkins/scripts/propose_updated_config_file.sh
Executable file
73
jenkins/scripts/propose_updated_config_file.sh
Executable file
@ -0,0 +1,73 @@
|
||||
#!/bin/bash -xe
|
||||
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
source /usr/local/jenkins/slave_scripts/common.sh
|
||||
|
||||
PROJECT=$1
|
||||
BRANCH=$2
|
||||
INITIAL_COMMIT_MSG="Updating sample configuration file"
|
||||
USERNAME="proposal-bot"
|
||||
SUCCESS=0
|
||||
|
||||
setup_git
|
||||
|
||||
change_id=""
|
||||
# See if there is an open change, if so, get the change id for the
|
||||
# existing change for use in the commit message.
|
||||
change_info=$(ssh -p 29418 $USERNAME@review.openstack.org gerrit query --current-patch-set status:open project:$PROJECT owner:$USERNAME branch:$BRANCH)
|
||||
previous=$(echo "$change_info" | grep "^ number:" | awk '{print $2}')
|
||||
if [ "x${previous}" != "x" ] ; then
|
||||
change_id=$(echo "$change_info" | grep "^change" | awk '{print $2}')
|
||||
# read return a non zero value when it reaches EOF. Because we use a
|
||||
# heredoc here it will always reach EOF and return a nonzero value.
|
||||
# Disable -e temporarily to get around the read.
|
||||
# The reason we use read is to allow for multiline variable content
|
||||
# and variable interpolation. Simply double quoting a string across
|
||||
# multiple lines removes the newlines.
|
||||
set +e
|
||||
read -d '' COMMIT_MSG <<EOF
|
||||
$INITIAL_COMMIT_MSG
|
||||
|
||||
Change-Id: $change_id
|
||||
EOF
|
||||
set -e
|
||||
else
|
||||
COMMIT_MSG=$INITIAL_COMMIT_MSG
|
||||
fi
|
||||
|
||||
echo "Setting commit message to: $COMMIT_MSG"
|
||||
|
||||
tox -e genconfig
|
||||
RET=$?
|
||||
if [ "$RET" -ne "0" ] ; then
|
||||
SUCCESS=1
|
||||
echo "Error in generating sample config for $PROJECT"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! git diff --stat --exit-code HEAD ; then
|
||||
# Commit and review
|
||||
echo "changes in config file found for $PROJECT"
|
||||
git_args="-a -F-"
|
||||
git commit $git_args <<EOF
|
||||
$COMMIT_MSG
|
||||
EOF
|
||||
TOPIC="openstack/$PROJECT/genconf"
|
||||
OUTPUT=$(git review -t $TOPIC)
|
||||
RET=$?
|
||||
[[ "$RET" -eq "0" || "$OUTPUT" =~ "no new changes" || "$OUTPUT" =~ "no changes made" ]]
|
||||
SUCCESS=$?
|
||||
fi
|
||||
|
||||
exit $SUCCESS
|
@ -1972,6 +1972,7 @@ projects:
|
||||
- gate-swift-dsvm-functional
|
||||
post:
|
||||
- keystone-coverage
|
||||
- keystone-propose-config-updates
|
||||
experimental:
|
||||
- gate-grenade-dsvm-forward
|
||||
- gate-keystone-python34
|
||||
|
Loading…
Reference in New Issue
Block a user