Skip to content
This repository was archived by the owner on Mar 20, 2023. It is now read-only.

Commit c42652d

Browse files
committed
Migrate Docker builds to Azure DevOps
1 parent 163f1d0 commit c42652d

File tree

1 file changed

+68
-4
lines changed

1 file changed

+68
-4
lines changed

.vsts/pipeline.yml

Lines changed: 68 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ jobs:
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:
@@ -62,6 +63,7 @@ jobs:
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'),
@@ -76,7 +78,14 @@ jobs:
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

Comments
 (0)