diff --git a/modules/jenkins/files/slave_scripts/propose_translation_update_manuals.sh b/modules/jenkins/files/slave_scripts/propose_translation_update_manuals.sh new file mode 100755 index 0000000000..0fc3eefe39 --- /dev/null +++ b/modules/jenkins/files/slave_scripts/propose_translation_update_manuals.sh @@ -0,0 +1,97 @@ +#!/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. + +PROJECT="openstack-manuals" +DocNameList="basic-install cli-guide common openstack-block-storage-admin \ +openstack-compute-admin openstack-ha openstack-install \ +openstack-network-connectivity-admin openstack-object-storage-admin \ +openstack-ops" + +COMMIT_MSG="Imported Translations from Transifex" + +git config user.name "OpenStack Jenkins" +git config user.email "jenkins@openstack.org" +git config gitreview.username "jenkins" + +git review -s + +# See if there is an open change in the transifex/translations topic +# If so, get the change id for the existing change for use in the commit msg. +change_info=`ssh -p 29418 review.openstack.org gerrit query --current-patch-set status:open project:openstack/$PROJECT topic:transifex/translations owner:jenkins` +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. + set +e + read -d '' COMMIT_MSG <.po" --source-lang en \ +--source-file doc/src/docbkx/${DOCNAME}/locale/${DOCNAME}.pot \ +-t PO --execute + # openstack-ha needs to create new DocBook files + if [ "$DOCNAME" == "openstack-ha" ] + then + asciidoc -b docbook -d book -o - doc/src/docbkx/openstack-ha/ha-guide.txt \ +| xsltproc -o - /usr/share/xml/docbook/stylesheet/docbook5/db4-upgrade.xsl - \ +| xmllint --format - | sed -e 's, doc/src/docbkx/openstack-ha/bk-ha-guide.xml + fi + # Update the .pot file + ./tools/generatepot ${DOCNAME} + # Add all changed files to git + git add doc/src/docbkx/${DOCNAME}/locale/* +done + +if [ ! `git diff --cached --quiet HEAD --` ] +then + # Push .pot changes to transifex + tx --debug --traceback push -s +fi + +# Pull all upstream translations +tx pull -a + +for DOCNAME in ${DocNameList} +do + git add doc/src/docbkx/${DOCNAME}/locale/* +done + +# Don't send a review if the only things which have changed are the creation +# date or comments. +if [ `git diff --cached | egrep -v "(POT-Creation-Date|^[\+\-]#|^\+{3}|^\-{3})" | egrep -c "^[\-\+]"` -gt 0 ] +then + # Commit and review + git commit -F- <.po" --source-lang en \ +--source-file doc/src/docbkx/${DOCNAME}/locale/${DOCNAME}.pot \ +-t PO --execute + # openstack-ha needs to create new DocBook files + if [ "$DOCNAME" == "openstack-ha" ] + then + asciidoc -b docbook -d book -o - doc/src/docbkx/openstack-ha/ha-guide.txt \ +| xsltproc -o - /usr/share/xml/docbook/stylesheet/docbook5/db4-upgrade.xsl - \ +| xmllint --format - | sed -e 's, doc/src/docbkx/openstack-ha/bk-ha-guide.xml + fi + # Update the .pot file + ./tools/generatepot ${DOCNAME} + # Add all changed files to git + git add doc/src/docbkx/${DOCNAME}/locale/* +done + +if [ ! `git diff --cached --quiet HEAD --` ] +then + # Push .pot changes to transifex + tx --debug --traceback push -s +fi + + + diff --git a/modules/openstack_project/files/jenkins_job_builder/config/translation-jobs.yaml b/modules/openstack_project/files/jenkins_job_builder/config/translation-jobs.yaml index 6086db797a..7855c65e0e 100644 --- a/modules/openstack_project/files/jenkins_job_builder/config/translation-jobs.yaml +++ b/modules/openstack_project/files/jenkins_job_builder/config/translation-jobs.yaml @@ -39,9 +39,50 @@ node: 'tx' +- job: + name: manuals-upstream-translation-update + concurrent: false + + triggers: + - zuul-post + + builders: + - gerrit-git-prep + - shell: | + #!/bin/bash -xe + /usr/local/jenkins/slave_scripts/upstream_translation_update_manuals.sh + + publishers: + - console-log-post + + node: 'tx' + +- job: + name: manuals-propose-translation-update + concurrent: false + + triggers: + - timed: '@daily' + + builders: + - shell: | + #!/bin/bash -xe + /usr/local/jenkins/slave_scripts/propose_translation_update_manuals.sh + + publishers: + - console-log-periodic + + scm: + - git: + url: 'git://github.com/{github-org}/openstack-manuals.git' + branches: + - 'origin/master' + + node: 'tx' - job-group: name: translation-jobs jobs: - '{name}-upstream-translation-update' - '{name}-propose-translation-update' + diff --git a/modules/openstack_project/files/zuul/layout.yaml b/modules/openstack_project/files/zuul/layout.yaml index 2c46d2182d..3c87b0793a 100644 --- a/modules/openstack_project/files/zuul/layout.yaml +++ b/modules/openstack_project/files/zuul/layout.yaml @@ -124,6 +124,8 @@ jobs: files: - '^tools/.*-requires$' - '^.*requirements.txt$' + - name: manuals-upstream-translation-update + branch: ^master$ projects: @@ -1259,6 +1261,7 @@ projects: - openstack-install-deploy-guide-apt-fedora - openstack-install-deploy-guide-ubuntu - openstack-operations-guide + - manuals-upstream-translation-update - name: openstack/api-site check: