1010 Python37 :
1111 python.version : ' 3.7'
1212 PYENV_VERSION : ' 3.7.2'
13+ VENV_VERSION : ' 16.2.0'
1314 steps :
1415 - task : InstallPython@1
1516 inputs :
6263 echo "##vso[task.setvariable variable=GIT_TAG;]$gitTag"
6364 echo "##vso[task.setvariable variable=ARTIFACT_CLI;]$artifactCli"
6465 echo "##vso[task.setvariable variable=ARTIFACT_UPLOAD_PATH;]$artifactUploadPath"
66+ echo "##vso[task.setvariable variable=DOCKER_TAG;]$gitTag"
6567 displayName: Pre-build Environment (Tagged Release)
6668 condition: >
6769 and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'Manual'),
7678 (Get-Content $fileverInfo).replace('{BUILDVER_DOTTED}', $env:BUILDVER_DOTTED) | Set-Content $fileverInfo
7779 (Get-Content $fileverInfo).replace('{BRANCH_GITSHA1}', $branchGitSha1) | Set-Content $fileverInfo
7880 (Get-Content $fileverInfo).replace('{EXE}', $env:ARTIFACT_CLI) | Set-Content $fileverInfo
79- python -m pip install virtualenv
81+ if(Test-Path env:VENV_VERSION)
82+ {
83+ python -m pip install virtualenv==$env:VENV_VERSION
84+ }
85+ else
86+ {
87+ python -m pip install virtualenv
88+ }
8089 python -m virtualenv pyi
8190 displayName: Pre-build
8291 condition: and(succeeded(), ne(variables['ARTIFACT_CLI'], ''))
@@ -136,7 +145,7 @@ jobs:
136145 docker push $cliImage
137146 popd
138147 displayName: Docker build
139- condition: and(succeeded(), ne(variables['GIT_TAG '], ''))
148+ condition: and(succeeded(), ne(variables['DOCKER_TAG '], ''))
140149
141150 - job : Linux
142151 pool :
@@ -147,6 +156,7 @@ jobs:
147156 Python37 :
148157 python.version : ' 3.7'
149158 PYENV_VERSION : ' 3.7.2'
159+ VENV_VERSION : ' 16.2.0'
150160 steps :
151161 - task : UsePythonVersion@0
152162 inputs :
@@ -195,6 +205,11 @@ jobs:
195205 - script : |
196206 set -e
197207 set -o pipefail
208+ if [ "$BUILD_SOURCEBRANCHNAME" == "master" ]; then
209+ echo "##vso[task.setvariable variable=DOCKER_TAG;]latest"
210+ else
211+ echo "##vso[task.setvariable variable=DOCKER_TAG;]${BUILD_SOURCEBRANCHNAME}"
212+ fi
198213 ARTIFACT_CLI="batch-shipyard-${BUILD_SOURCEBRANCHNAME}-${BUILD_BUILDID}-cli-linux-x86_64"
199214 ARTIFACT_UPLOAD_PATH="builds/${BUILD_SOURCEBRANCHNAME}"
200215 echo "##vso[task.setvariable variable=ARTIFACT_CLI;]${ARTIFACT_CLI}"
@@ -211,6 +226,7 @@ jobs:
211226 echo "##vso[task.setvariable variable=GIT_TAG;]${GIT_TAG}"
212227 echo "##vso[task.setvariable variable=ARTIFACT_CLI;]${ARTIFACT_CLI}"
213228 echo "##vso[task.setvariable variable=ARTIFACT_UPLOAD_PATH;]${ARTIFACT_UPLOAD_PATH}"
229+ echo "##vso[task.setvariable variable=DOCKER_TAG;]${GIT_TAG}"
214230 displayName: Pre-build Environment (Tagged Release)
215231 condition: >
216232 and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI', 'Manual'),
@@ -221,7 +237,11 @@ jobs:
221237 set -o pipefail
222238 echo "ARTIFACT_CLI=$ARTIFACT_CLI ARTIFACT_UPLOAD_PATH=$ARTIFACT_UPLOAD_PATH GIT_TAG=$GIT_TAG"
223239 ARTIFACT_CLI_PATH="bin/${ARTIFACT_CLI}"
224- $PIP install virtualenv
240+ if [ -z "$VENV_VERSION" ]; then
241+ $PIP install virtualenv
242+ else
243+ $PIP install virtualenv==${VENV_VERSION}
244+ fi
225245 $PYTHON -m virtualenv -p $PYTHON pyi
226246 /bin/bash -c \
227247 "set -e; source pyi/bin/activate; \
@@ -243,6 +263,45 @@ jobs:
243263 pathtoPublish : bin
244264 artifactName : BatchShipyard-Linux
245265 condition : and(succeeded(), ne(variables['ARTIFACT_CLI'], ''))
266+ - script : |
267+ set -e
268+ set -o pipefail
269+ docker version
270+ docker login -u="$(docker.username)" -p="$(docker.password)"
271+ if [ -n "$GIT_TAG" ]; then
272+ cargoImage="alfpark/batch-shipyard:${DOCKER_TAG}-cargo"
273+ pushd cargo
274+ docker build --build-arg GIT_BRANCH=$BUILD_SOURCEBRANCHNAME --build-arg GIT_COMMIT=$BUILD_SOURCEVERSION -t $cargoImage .
275+ docker push $cargoImage
276+ popd
277+ cascadeImage="alfpark/batch-shipyard:${DOCKER_TAG}-cascade"
278+ pushd cascade
279+ docker build --build-arg GIT_BRANCH=$BUILD_SOURCEBRANCHNAME --build-arg GIT_COMMIT=$BUILD_SOURCEVERSION -t $cascadeImage .
280+ docker push $cascadeImage
281+ popd
282+ fedImage="alfpark/batch-shipyard:${DOCKER_TAG}-federation"
283+ pushd federation
284+ docker build --build-arg GIT_BRANCH=$BUILD_SOURCEBRANCHNAME --build-arg GIT_COMMIT=$BUILD_SOURCEVERSION -t $fedImage .
285+ docker push $fedImage
286+ popd
287+ heimdallImage="alfpark/batch-shipyard:${DOCKER_TAG}-heimdall"
288+ pushd federation
289+ docker build --build-arg GIT_BRANCH=$BUILD_SOURCEBRANCHNAME --build-arg GIT_COMMIT=$BUILD_SOURCEVERSION -t $heimdallImage .
290+ docker push $heimdallImage
291+ popd
292+ slurmImage="alfpark/batch-shipyard:${DOCKER_TAG}-slurm"
293+ pushd slurm
294+ docker build --build-arg GIT_BRANCH=$BUILD_SOURCEBRANCHNAME --build-arg GIT_COMMIT=$BUILD_SOURCEVERSION -t $slurmImage .
295+ docker push $slurmImage
296+ popd
297+ fi
298+ cliImage="alfpark/batch-shipyard:${DOCKER_TAG}-cli"
299+ pushd docker/linux/cli
300+ docker build --build-arg GIT_BRANCH=$BUILD_SOURCEBRANCHNAME --build-arg GIT_COMMIT=$BUILD_SOURCEVERSION -t $cliImage .
301+ docker push $cliImage
302+ popd
303+ displayName: Docker Build
304+ condition: and(succeeded(), ne(variables['DOCKER_TAG'], ''))
246305
247306 - job : MacOS
248307 pool :
@@ -253,6 +312,7 @@ jobs:
253312 Python37 :
254313 python.version : ' 3.7'
255314 PYENV_VERSION : ' 3.7.2'
315+ VENV_VERSION : ' 16.2.0'
256316 steps :
257317 - task : UsePythonVersion@0
258318 inputs :
@@ -323,7 +383,11 @@ jobs:
323383 set -o pipefail
324384 echo "ARTIFACT_CLI=$ARTIFACT_CLI ARTIFACT_UPLOAD_PATH=$ARTIFACT_UPLOAD_PATH GIT_TAG=$GIT_TAG"
325385 ARTIFACT_CLI_PATH="bin/${ARTIFACT_CLI}"
326- $PIP install virtualenv
386+ if [ -z "$VENV_VERSION" ]; then
387+ $PIP install virtualenv
388+ else
389+ $PIP install virtualenv==${VENV_VERSION}
390+ fi
327391 $PYTHON -m virtualenv -p $PYTHON pyi
328392 /bin/bash -c \
329393 "set -e; source pyi/bin/activate; \
0 commit comments