onnxruntime/tools/ci_build/github/azure-pipelines/orttraining-linux-gpu-docker-release-pipeline.yml
jingyanwangms adda8c66d9
Docker image release pipeline (#4682)
* create orttraining-1p-linux-gpu-ci-pipeline.yml

* fix syntax

* fix file path

* fix template path

* publish docker image to test acr

* use right task name

* change parameter list

* use variables

* use python.version

* remove --enable_onnx_tests due to segfault

* add back --enable_onnx_tests

* fix docker push command line

* change docker login command

* login differently

* fix docker tag script

* create password.txt

* add ortrelease docker image

* enable test in build.sh

* add pipeline parameter

* add pipeline parameter

* change timeout

* change timeout

* fix run_dockerbuild.sh

* use PR checkin build docker

* fix strategy syntax

* fix strategy syntax

* change dockerfile

* change run_dockerbuild.sh

* change tag name

* build with root user

* use build id for docker image tag

* remove all user lines

* change docker tag

* add mpi, mellanox

* add missing args

* use release dockerfile for ci build

* remove install wheel

* use release docker image

* fix syntax

* use different pool

* add Dockerfile.training

* remove sudo to run on Linux-Multi-GPU-V100

* change docker file path

* update dockerfile

* use latest dockerfile

* change agent pool

* remove --preserve-env

* add back parameter

* Add test_flag

* use azuredevops docker

* change repository

* use cmd for docker login

* echo build script

* use ortrelrease ACR

* change key vault connection

* Move --build flag

* change build command

* add paramter for image tag

* clean up for PR

* remove unnecessary changes

* whitespace changes

* whitespace changes

* change build flag

* change flag name

* change flag

* use latest dockerfile

* enable build tests

* build builder stage and run test

* Add back python.version

* change build directory

* always run build entire dockerfile

* fix yml syntax

* fix syntax

* add en-UTF8 locale

* rename

* remove unused template

* Update orttraining-linux-gpu-docker-release-pipeline.yml for Azure Pipelines

* Update orttraining-linux-gpu-docker-release-pipeline.yml for Azure Pipelines

* Test commit sha1 in pipeline

* fix parameter

* update docker file

* fix --from=build

* remove commented blocks

* PR comments

* fix syntax

* fix syntax

* use timestamp as build number

* remove latest tag

* add build_timestamp variable

* remove wrong property

* fix docker run command

* test build id

* Use datestamp build id

* change build tags

* add no-cache to docker build

* rename BUILD_VERSION -> BUILD_CONFIG

Co-authored-by: Jingyan Wang <jingywa@OrtDevTest2v100.af05slrtruoetgaxwwjv5nsq5e.px.internal.cloudapp.net>
Co-authored-by: Jingyan Wang <jingywa@OrtTrainingDev3.af05slrtruoetgaxwwjv5nsq5e.px.internal.cloudapp.net>
2020-08-12 13:29:37 -07:00

77 lines
2.2 KiB
YAML

parameters:
- name: commit
displayName: Commit (Default to master or use sha1)
type: string
default: master
- name: image_tag
displayName: Image Tag
type: string
default: latest
variables:
docker_image_prefix: onnxruntime-training
linux_gpu_dockerfile: dockerfiles/Dockerfile.training
build_config: Release
name: $(Date:yyyyMMdd)$(Rev:.r)
jobs:
- job: Linux_py_GPU_Build_Test_Release_Dockerfile
timeoutInMinutes: 90
workspace:
clean: all
pool: Linux-GPU-CUDA10
steps:
- task: CmdLine@2
displayName: Build builder stage of docker file
inputs:
script: |
docker build \
--pull \
-t ${{ variables.docker_image_prefix }}-manylinux-gpu-release-stage1 \
--target builder \
--no-cache \
--build-arg COMMIT="${{ parameters.commit }}" \
--build-arg BUILD_CONFIG="${{ variables.build_config }}" \
-f ${{ variables.linux_gpu_dockerfile }} .
workingDirectory: $(Build.SourcesDirectory)
- task: CmdLine@2
displayName: Run tests
inputs:
script: |
docker run \
--gpus all \
--rm \
${{ variables.docker_image_prefix }}-manylinux-gpu-release-stage1 \
python onnxruntime/tools/ci_build/build.py \
--build_dir onnxruntime/build \
--config ${{ variables.build_config }} \
--test \
--enable_onnx_tests
workingDirectory: $(Build.SourcesDirectory)
- task: Docker@2
displayName: Build entire docker file
inputs:
command: build
containerRegistry: 'ortrelease'
repository: 'onnxruntime-training'
arguments: --build-arg COMMIT="${{ parameters.commit }}" --build-arg BUILD_CONFIG="${{ variables.build_config }}"
Dockerfile: ${{ variables.linux_gpu_dockerfile }}
tags: |
$(Build.BuildNumber)
${{ parameters.image_tag }}
- task: Docker@2
displayName: Push docker image
inputs:
command: push
containerRegistry: 'ortrelease'
repository: 'onnxruntime-training'
tags: |
$(Build.BuildNumber)
${{ parameters.image_tag }}
- template: templates/component-governance-component-detection-steps.yml
- template: templates/clean-agent-build-directory-step.yml