Docker/go.ps1
[CmdletBinding()] param ( [Parameter(Mandatory = $true)] [string] $PAT, [Parameter(Mandatory = $true)] [string] $ADOOrg, [Parameter(Mandatory = $true)] [string] $ADOProject, [Parameter(Mandatory = $false)] [string] $ADOPool = "PowerPlatform", [Parameter(Mandatory = $false)] [bool] $RebuildBase = $false ) $CurrentLocation = Get-Location Set-Location $PSScriptRoot #Remove-Item .\Capgemini.PowerPlatform.DevOps\ -Recurse -Force -ErrorAction SilentlyContinue #Copy-Item -Path (Get-Item '..\*.*' -Exclude ('Docker')).FullName -Destination .\Capgemini.PowerPlatform.DevOps\ -Recurse -Force if (!(Test-Path -Path c:\Dev\Repos)) { New-Item -Path C:\Dev\Repos -ItemType Directory } $imageResult = docker image ls Capgemini.PowerPlatform.DevOps.base --quiet if (!$imageResult -or $RebuildBase) { Write-Host "Building base image...." docker build -t Capgemini.PowerPlatform.DevOps.base:latest . -f Dockerfile.devopsbase } docker build -t Capgemini.PowerPlatform.DevOps.test:latest --no-cache . $ScriptBlock = { function Agent([string]$Agent) { start-sleep -Seconds 5 #docker exec -it $Agent powershell Invoke-PowerPlatformDevOps docker exec -it $Agent powershell \Agent.ps1 } function Tooling([string]$Agent) { start-sleep -Seconds 5 docker exec -it $Agent powershell -NoExit -File ".\Tooling.ps1" "true" } } if (docker ps -a -q -f name=$ADOOrg) { if (docker ps -q -f name=$ADOOrg) { Start-Process -FilePath PowerShell -ArgumentList "-Command & {$ScriptBlock Tooling('$ADOOrg')}" Start-Process -FilePath PowerShell -ArgumentList "-Command & {$ScriptBlock Agent('$ADOOrg')}" } else { Start-Process -FilePath PowerShell -ArgumentList "-Command & {$ScriptBlock Tooling('$ADOOrg')}" Start-Process -FilePath PowerShell -ArgumentList "-Command & {$ScriptBlock Agent('$ADOOrg')}" docker start $ADOOrg } } else { Start-Process -FilePath PowerShell -ArgumentList "-Command & {$ScriptBlock Tooling('$ADOOrg')}" Start-Process -FilePath PowerShell -ArgumentList "-Command & {$ScriptBlock Agent('$ADOOrg')}" docker run -t -d --name $ADOOrg -e AZP_AGENT_NAME=$ADOOrg -e AZP_TOKEN=$PAT -e AZP_ORG=$ADOOrg -e AZP_PROJECT=$ADOProject -e AZP_POOL=$ADOPool -v c:\dev\repos:c:\dev\repos Capgemini.PowerPlatform.DevOps.test:latest } |