1+ parameters :
2+ - name : containerRegistry
3+ default : " utPLSQL-docker"
4+ - name : dockerRepo
5+ default : " gvenzl/oracle-xe"
6+ - name : utplsqlVersion
7+ default : " "
8+ - name : utplsqlDir
9+ default : " "
10+ - name : test_user
11+ default : " "
12+ - name : test_pwd
13+ default : " "
14+ - name : targetDatabases
15+ type : object
16+ default :
17+ - name : oracleVersion
18+ default : " "
19+ - name : dockerOptions
20+ type : string
21+ default : " --shm-size=1g"
22+ - name : dockerPortMap
23+ type : string
24+ default : " 1521"
25+ - name : connectionString
26+ default : " "
27+ - name : scripts
28+ type : object
29+ default :
30+ - name : work_dir
31+ default : " "
32+ - name : user
33+ default : " "
34+ - name : password
35+ default : " "
36+ - name : script
37+ default : " "
38+ - name : displayName
39+ default : " "
40+
41+
42+ steps :
43+ - bash : |
44+ git clone --depth=1 --branch=${{ parameters.utplsqlVersion }} https://github.com/utPLSQL/utPLSQL.git ${{ parameters.utplsqlDir}}
45+ chmod -R go+w ${{ parameters.utplsqlDir}}
46+ displayName : ' Download utPLSQL'
47+
48+ - task : Docker@2
49+ displayName : Docker Login
50+ inputs :
51+ containerRegistry : ${{ parameters.containerRegistry }}
52+ command : ' login'
53+ addPipelineData : false
54+ addBaseImageData : false
55+
56+ - ${{ each trg_db in parameters.targetDatabases }} :
57+ - bash : |
58+ # download Oracle Database docker image from private repo and start the DB
59+ time docker pull ${{ parameters.dockerRepo }}:${{ trg_db.oracleVersion }}
60+ # start the docker container (DB)
61+ time docker run -d --name ${{ trg_db.oracleVersion }} ${{ trg_db.dockerOptions }} -p 1521:${{ trg_db.dockerPortMap }} ${{ parameters.dockerRepo }}:${{ trg_db.oracleVersion }}
62+ # Wait for DB startup
63+ time docker logs -f ${{ trg_db.oracleVersion }} | grep -m 1 "DATABASE IS READY TO USE!" --line-buffered
64+ displayName: 'Start Oracle DB Docker container: ${{ trg_db.oracleVersion }}'
65+
66+ - ${{ each script in trg_db.scripts }} :
67+ - template : t-extend-sqlcl.yml
68+ parameters :
69+ work_dir : ${{ script.work_dir}}
70+ user : ${{ script.user}}
71+ password : ${{ script.password}}
72+ connectionString : ${{ trg_db.connectionString}}
73+ script : ${{ script.script}}
74+ displayName : ${{ script.displayName}}
75+
76+ - template : t-extend-utplsqlcli.yml
77+ parameters :
78+ work_dir : $(Build.SourcesDirectory)
79+ connectionString : ${{ trg_db.connectionString}}
80+ test_user : ${{ parameters.test_user }}
81+ test_pwd : ${{ parameters.test_pwd }}
82+ source_path : " source"
83+ test_path : " test"
84+ options : " --debug --failure-exit-code=0"
85+
86+ - task : PublishTestResults@2
87+ inputs :
88+ testResultsFormat : ' JUnit'
89+ testResultsFiles : ' **/junit_test_results.xml'
90+ testRunTitle : ' Publish test results'
91+ displayName : ' Publish test results'
92+
93+ - task : PublishCodeCoverageResults@1
94+ inputs :
95+ codeCoverageTool : ' Cobertura'
96+ summaryFileLocation : ' cobertura.xml'
97+ pathToSources : ' source'
98+ displayName : ' Publish coverage'
0 commit comments