Django
ジェンキンスとの継続的な統合
サーチ…
Jenkins 2.0+ Pipeline Script
現代版のJenkins(バージョン2.x)には、複雑なCIタスクを多数の相互接続ジョブを作成せずに編成し、ビルド/テスト設定を簡単にバージョン管理できる「Build Pipeline Plugin」が付属しています。
これは "パイプライン"タイプのジョブで手動でインストールすることも、プロジェクトがGithubでホストされている場合は、 "GitHub Organization Folder Plugin"を使用して自動的にジョブを設定することができます。
Djangoサイトのための簡単な設定は、サイトの指定されたPythonモジュールだけをインストールする必要があります。
#!/usr/bin/groovy
node {
// If you are having issues with your project not getting updated,
// try uncommenting the following lines.
//stage 'Checkout'
//checkout scm
//sh 'git submodule update --init --recursive'
stage 'Update Python Modules'
// Create a virtualenv in this folder, and install or upgrade packages
// specified in requirements.txt; https://pip.readthedocs.io/en/1.1/requirements.html
sh 'virtualenv env && source env/bin/activate && pip install --upgrade -r requirements.txt'
stage 'Test'
// Invoke Django's tests
sh 'source env/bin/activate && python ./manage.py runtests'
}
Jenkins 2.0+ Pipeline Script、Docker Containers
次に、Dockerコンテナを作成し、内部でテストを実行するパイプラインスクリプトの例を示します。エントリポイントは、 manage.py
またはinvoke
/ fabric
いずれかであり、 runtests
コマンドが利用可能であるとruntests
ます。
#!/usr/bin/groovy
node {
stage 'Checkout'
checkout scm
sh 'git submodule update --init --recursive'
imageName = 'mycontainer:build'
remotes = [
'dockerhub-account',
]
stage 'Build'
def djangoImage = docker.build imageName
stage 'Run Tests'
djangoImage.run('', 'runtests')
stage 'Push'
for (int i = 0; i < remotes.size(); i++) {
sh "docker tag ${imageName} ${remotes[i]}/${imageName}"
sh "docker push ${remotes[i]}/${imageName}"
}
}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow