@@ -73,8 +73,20 @@ install:
7373 - " echo %PATH%"
7474 - " python --version"
7575 - ps : " Restart-Service docker"
76+
7677 # Switch to Docker Linux containers
77- - ps : ' & $Env:ProgramFiles\Docker\Docker\DockerCli.exe -SwitchLinuxEngine'
78+ - ps : |
79+ $dockerCliPath = "$Env:ProgramFiles\Docker\Docker\DockerCli.exe"
80+ if (Test-Path $dockerCliPath) {
81+ & $dockerCliPath -SwitchLinuxEngine
82+ Write-Host "Docker successfully switched to Linux container mode"
83+ } else {
84+ Write-Host "DockerCli.exe not found at expected location. Installing tree and exploring Docker directory structure..."
85+ choco install tree
86+ tree "$Env:ProgramFiles\Docker" /F /A
87+ Write-Host "Build stopped for Docker CLI investigation."
88+ exit 1
89+ }
7890 - " docker info"
7991 - " docker version"
8092
@@ -91,27 +103,27 @@ install:
91103 - " git --version"
92104
93105 # Get testing env vars
94- - ps : "
95- If (Test-Path env:BY_CANARY){
96- python -m virtualenv venv_env_vars;
97- ./venv_env_vars/Scripts/pip install boto3;
98- $test_env_var = ./venv_env_vars/Scripts/python tests/get_testing_resources.py;
99- $test_env_var_json = ConvertFrom-Json $test_env_var;
100-
101- $env:CI_ACCESS_ROLE_AWS_ACCESS_KEY_ID = $env:AWS_ACCESS_KEY_ID;
102- $env:CI_ACCESS_ROLE_AWS_SECRET_ACCESS_KEY = $env:AWS_SECRET_ACCESS_KEY;
103- $env:CI_ACCESS_ROLE_AWS_SESSION_TOKEN = $env:AWS_SESSION_TOKEN;
104-
105- $env:AWS_ACCESS_KEY_ID = $test_env_var_json.accessKeyID;
106- $env:AWS_SECRET_ACCESS_KEY = $test_env_var_json.secretAccessKey;
107- $env:AWS_SESSION_TOKEN = $test_env_var_json.sessionToken;
108- $env:TASK_TOKEN = $test_env_var_json.taskToken;
109- $env:AWS_S3_TESTING = $test_env_var_json.TestBucketName;
110- $env:AWS_ECR_TESTING = $test_env_var_json.TestECRURI;
111- $env:AWS_KMS_KEY = $test_env_var_json.TestKMSKeyArn;
112- $env:AWS_SIGNING_PROFILE_NAME = $test_env_var_json.TestSigningProfileName;
113- $env:AWS_SIGNING_PROFILE_VERSION_ARN = $test_env_var_json.TestSigningProfileARN;
114- } "
106+ - ps : |
107+ If (Test-Path env:BY_CANARY){
108+ python -m virtualenv venv_env_vars;
109+ ./venv_env_vars/Scripts/pip install boto3;
110+ $test_env_var = ./venv_env_vars/Scripts/python tests/get_testing_resources.py;
111+ $test_env_var_json = ConvertFrom-Json $test_env_var;
112+
113+ $env:CI_ACCESS_ROLE_AWS_ACCESS_KEY_ID = $env:AWS_ACCESS_KEY_ID;
114+ $env:CI_ACCESS_ROLE_AWS_SECRET_ACCESS_KEY = $env:AWS_SECRET_ACCESS_KEY;
115+ $env:CI_ACCESS_ROLE_AWS_SESSION_TOKEN = $env:AWS_SESSION_TOKEN;
116+
117+ $env:AWS_ACCESS_KEY_ID = $test_env_var_json.accessKeyID;
118+ $env:AWS_SECRET_ACCESS_KEY = $test_env_var_json.secretAccessKey;
119+ $env:AWS_SESSION_TOKEN = $test_env_var_json.sessionToken;
120+ $env:TASK_TOKEN = $test_env_var_json.taskToken;
121+ $env:AWS_S3_TESTING = $test_env_var_json.TestBucketName;
122+ $env:AWS_ECR_TESTING = $test_env_var_json.TestECRURI;
123+ $env:AWS_KMS_KEY = $test_env_var_json.TestKMSKeyArn;
124+ $env:AWS_SIGNING_PROFILE_NAME = $test_env_var_json.TestSigningProfileName;
125+ $env:AWS_SIGNING_PROFILE_VERSION_ARN = $test_env_var_json.TestSigningProfileARN;
126+ }
115127
116128
117129 # Create new virtual environment with chosen python version and activate it
@@ -120,19 +132,18 @@ install:
120132 - " python --version"
121133
122134 # Install testing pre-reqs without installing sam-cli from source
123- - pip install -r requirements/pre-dev.txt"
124- - pip install -r requirements/dev.txt"
125- - pip install -r requirements/base.txt
126- - pytest --version
135+ - " pip install -r requirements/pre-dev.txt"
136+ - " pip install -r requirements/dev.txt"
137+ - " pip install -r requirements/base.txt"
138+ - " pytest --version"
127139
128140 # Install aws cli
129141 - " pip install awscli"
130142
131143 # Install aws-sam-cli MSI binary
132- - ps : "
133- Invoke-WebRequest -Uri https://github.com/aws/aws-sam-cli/releases/download/sam-cli-nightly/AWS_SAM_CLI_64_PY3.msi -OutFile aws-sam-cli-installer.msi;
134- Start-Process 'C:\\ Windows\\ System32\\ msiexec.exe' -ArgumentList '/i aws-sam-cli-installer.msi /qn /norestart' -wait -PassThru;
135- "
144+ - ps : |
145+ Invoke-WebRequest -Uri https://github.com/aws/aws-sam-cli/releases/download/sam-cli-nightly/AWS_SAM_CLI_64_PY3.msi -OutFile aws-sam-cli-installer.msi;
146+ Start-Process 'C:\\Windows\\System32\\msiexec.exe' -ArgumentList '/i aws-sam-cli-installer.msi /qn /norestart' -wait -PassThru;
136147 - ' set PATH=C:\Program Files\Amazon\AWSSAMCLI_NIGHTLY\bin\;%PATH%'
137148 - ' sam-nightly --version'
138149
@@ -141,11 +152,10 @@ install:
141152
142153 # use amazon-ecr-credential-helper
143154 - choco install amazon-ecr-credential-helper
144- - ps : "
145- $docker_config = Get-Content $env:HOME/.docker/config.json -raw | ConvertFrom-Json;
146- $docker_config.credsStore = 'ecr-login';
147- $docker_config | ConvertTo-Json | set-content $env:HOME/.docker/config.json;
148- "
155+ - ps : |
156+ $docker_config = Get-Content $env:HOME/.docker/config.json -raw | ConvertFrom-Json;
157+ $docker_config.credsStore = 'ecr-login';
158+ $docker_config | ConvertTo-Json | set-content $env:HOME/.docker/config.json;
149159 - ps : " get-content $env:HOME/.docker/config.json"
150160
151161 # claim some disk space before starting the tests
@@ -156,22 +166,22 @@ install:
156166on_finish :
157167 # Upload test reports as artifacts
158168 - ps : Get-ChildItem .\TEST_REPORT-*.json | % { Push-AppveyorArtifact $_.FullName -FileName $_.Name }
159- - ps : '
160- If (Test-Path env:BY_CANARY){
161- $env:AWS_ACCESS_KEY_ID = $env:TEST_REPORT_S3_BUCKET_ACCESS_KEY_ID;
162- $env:AWS_SECRET_ACCESS_KEY = $env:TEST_REPORT_S3_BUCKET_SECRET_ACCESS_KEY;
163- $env:AWS_SESSION_TOKEN = $env:TEST_REPORT_S3_BUCKET_SESSION_TOKEN;
164- aws s3 cp ".\" "s3://$env:TEST_REPORT_S3_BUCKET_NAME/appveyor/$env:APPVEYOR_PROJECT_SLUG/$env:APPVEYOR_BUILD_ID/$env:APPVEYOR_JOB_ID/" --recursive --exclude "*" --include "TEST_REPORT-*.json" --region us-west-2
165- } '
169+ - ps : |
170+ If (Test-Path env:BY_CANARY){
171+ $env:AWS_ACCESS_KEY_ID = $env:TEST_REPORT_S3_BUCKET_ACCESS_KEY_ID;
172+ $env:AWS_SECRET_ACCESS_KEY = $env:TEST_REPORT_S3_BUCKET_SECRET_ACCESS_KEY;
173+ $env:AWS_SESSION_TOKEN = $env:TEST_REPORT_S3_BUCKET_SESSION_TOKEN;
174+ aws s3 cp ".\" "s3://$env:TEST_REPORT_S3_BUCKET_NAME/appveyor/$env:APPVEYOR_PROJECT_SLUG/$env:APPVEYOR_BUILD_ID/$env:APPVEYOR_JOB_ID/" --recursive --exclude "*" --include "TEST_REPORT-*.json" --region us-west-2
175+ }
166176
167177 # notify success
168- - ps : "
169- If (Test-Path env:BY_CANARY){
170- $env:AWS_ACCESS_KEY_ID = $env:CI_ACCESS_ROLE_AWS_ACCESS_KEY_ID;
171- $env:AWS_SECRET_ACCESS_KEY = $env:CI_ACCESS_ROLE_AWS_SECRET_ACCESS_KEY;
172- $env:AWS_SESSION_TOKEN = $env:CI_ACCESS_ROLE_AWS_SESSION_TOKEN;
173- aws stepfunctions send-task-success --task-token \ " $env:TASK_TOKEN\ " --task-output \ " {}\ " --region us-west-2;
174- } "
178+ - ps : |
179+ If (Test-Path env:BY_CANARY){
180+ $env:AWS_ACCESS_KEY_ID = $env:CI_ACCESS_ROLE_AWS_ACCESS_KEY_ID;
181+ $env:AWS_SECRET_ACCESS_KEY = $env:CI_ACCESS_ROLE_AWS_SECRET_ACCESS_KEY;
182+ $env:AWS_SESSION_TOKEN = $env:CI_ACCESS_ROLE_AWS_SESSION_TOKEN;
183+ aws stepfunctions send-task-success --task-token "$env:TASK_TOKEN" --task-output "{}" --region us-west-2;
184+ }
175185
176186
177187for :
307317# Uncomment for RDP
308318# on_finish:
309319# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
310-
0 commit comments