Skip to content

Commit f38170e

Browse files
authored
add check for docker cli switch mode (#8119)
1 parent 762dd95 commit f38170e

1 file changed

Lines changed: 59 additions & 50 deletions

File tree

appveyor-windows-binary.yml

Lines changed: 59 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -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:
156166
on_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
177187
for:
@@ -307,4 +317,3 @@ for:
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

Comments
 (0)