プロジェクト用にジェンキンとsvnをセットアップしようとしています。jenkins と svn は既に実行されています。現在、新しいコミットが入るたびにビルドを開始するポストコミットフックがあります。私のジェンキンはjenkins own user directory
登録で保護され、有効になっています。私も有効にしmatrix-based security
ました。
私は次のようなシナリオを考えています:
開発者がコミットするたびに、post-commit
スクリプトが呼び出され、ビルドとテストが開始されます。ビルドが失敗するたびに、コミットを行った開発者は、コミットが失敗した理由に関する情報が記載された電子メールを受け取ります。また、リポジトリでコミットを元に戻す必要があります。元に戻すものについては、すでにインストールしていますrevert plugin
私のプロジェクトのためにそれをアクティブにしました。しかし、ビルドが失敗するテストコミットを行った後、リポジトリに何も起こらなかったため、機能していないようです。多分私は別のjenkins + svn構成を見逃していますか? リバーティグ コミットがベスト プラクティスではないことはわかっていますが、テスト/デモ用にレポに常に有効なビルドを用意したいと考えています。私のpost-commot
ファイルは次のようになります。
#!/bin/bash
REPOS="$1"
REV="$2"
UUID=`svnlook uuid $REPOS`
/usr/bin/wget \
--http-user="user" \
--http-passwd="psswd" \
--header "Content-Type:text/plain;charset=UTF-8" \
--post-data "`svnlook changed --revision $REV $REPOS`" \
--output-document "-" \
--timeout=2 \
http://ip/jenkins/subversion/${UUID}/notifyCommit?rev=$REV
このスクリプトは基本的に機能していますが、ご覧のとおり、ユーザーとパスワードがハードコードされています。しかし、私は現在、認証情報をジェンキンに提供する方法を他に知りません。アイデア全体を機能させるには、すべての開発者が新しいチェックアウトとリポジトリからのアカウントだけでなく、ジェンキンスのアカウントも必要とするため、論理的な問題があるのかもしれません。