Skip to content

Commit 8824ea4

Browse files
committed
pr feedback
1 parent 80db790 commit 8824ea4

File tree

2 files changed

+237
-12
lines changed

2 files changed

+237
-12
lines changed

.github/workflows/cloud-runner-integrity.yml

Lines changed: 229 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -135,9 +135,9 @@ jobs:
135135
echo "Cleaning up disk space on k3d node..."
136136
docker exec k3d-unity-builder-agent-0 sh -c "docker system prune -af --volumes || true" 2>/dev/null || true
137137
docker exec k3d-unity-builder-agent-0 sh -c "df -h" 2>/dev/null || true
138-
- name: Run cloud-runner-end2end-caching test
139-
timeout-minutes: 60
140-
run: yarn run test "cloud-runner-end2end-caching" --detectOpenHandles --forceExit --runInBand
138+
- name: Run cloud-runner-image test (validate image creation)
139+
timeout-minutes: 10
140+
run: yarn run test "cloud-runner-image" --detectOpenHandles --forceExit --runInBand
141141
env:
142142
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
143143
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
@@ -148,7 +148,6 @@ jobs:
148148
versioning: None
149149
KUBE_STORAGE_CLASS: local-path
150150
PROVIDER_STRATEGY: k8s
151-
# Set resource requests for tests - increased memory to prevent OOM kills
152151
containerCpu: '1000'
153152
containerMemory: '1024'
154153
AWS_ACCESS_KEY_ID: test
@@ -176,9 +175,91 @@ jobs:
176175
sleep 3
177176
rm -rf ./cloud-runner-cache/* || true
178177
docker system prune -f || true
179-
- name: Run cloud-runner-end2end-retaining test
178+
- name: Run cloud-runner-kubernetes test (simple K8s build validation)
179+
timeout-minutes: 30
180+
run: yarn run test "cloud-runner-kubernetes" --detectOpenHandles --forceExit --runInBand
181+
env:
182+
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
183+
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
184+
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
185+
PROJECT_PATH: test-project
186+
TARGET_PLATFORM: StandaloneWindows64
187+
cloudRunnerTests: true
188+
versioning: None
189+
KUBE_STORAGE_CLASS: local-path
190+
PROVIDER_STRATEGY: k8s
191+
ENABLE_K8S_E2E: 'true'
192+
containerCpu: '1000'
193+
containerMemory: '1024'
194+
AWS_ACCESS_KEY_ID: test
195+
AWS_SECRET_ACCESS_KEY: test
196+
AWS_S3_ENDPOINT: http://localhost:4566
197+
AWS_ENDPOINT: http://localhost:4566
198+
INPUT_AWSS3ENDPOINT: http://localhost:4566
199+
INPUT_AWSENDPOINT: http://localhost:4566
200+
AWS_S3_FORCE_PATH_STYLE: 'true'
201+
AWS_EC2_METADATA_DISABLED: 'true'
202+
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
203+
GITHUB_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
204+
- name: Clean up K8s test resources
205+
run: |
206+
kubectl delete jobs --all --ignore-not-found=true -n default || true
207+
kubectl get pods -n default -o name 2>/dev/null | grep -E "(unity-builder-job-|helper-pod-)" | while read pod; do
208+
kubectl delete "$pod" --ignore-not-found=true || true
209+
done || true
210+
kubectl get pvc -n default -o name 2>/dev/null | grep "unity-builder-pvc-" | while read pvc; do
211+
kubectl delete "$pvc" --ignore-not-found=true || true
212+
done || true
213+
kubectl get secrets -n default -o name 2>/dev/null | grep "build-credentials-" | while read secret; do
214+
kubectl delete "$secret" --ignore-not-found=true || true
215+
done || true
216+
sleep 3
217+
rm -rf ./cloud-runner-cache/* || true
218+
docker system prune -f || true
219+
- name: Run cloud-runner-s3-steps test (validate S3 operations with K8s)
220+
timeout-minutes: 30
221+
run: yarn run test "cloud-runner-s3-steps" --detectOpenHandles --forceExit --runInBand
222+
env:
223+
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
224+
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
225+
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
226+
PROJECT_PATH: test-project
227+
TARGET_PLATFORM: StandaloneWindows64
228+
cloudRunnerTests: true
229+
versioning: None
230+
KUBE_STORAGE_CLASS: local-path
231+
PROVIDER_STRATEGY: k8s
232+
AWS_STACK_NAME: game-ci-team-pipelines
233+
containerCpu: '1000'
234+
containerMemory: '1024'
235+
AWS_ACCESS_KEY_ID: test
236+
AWS_SECRET_ACCESS_KEY: test
237+
AWS_S3_ENDPOINT: http://localhost:4566
238+
AWS_ENDPOINT: http://localhost:4566
239+
INPUT_AWSS3ENDPOINT: http://localhost:4566
240+
INPUT_AWSENDPOINT: http://localhost:4566
241+
AWS_S3_FORCE_PATH_STYLE: 'true'
242+
AWS_EC2_METADATA_DISABLED: 'true'
243+
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
244+
GITHUB_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
245+
- name: Clean up K8s test resources
246+
run: |
247+
kubectl delete jobs --all --ignore-not-found=true -n default || true
248+
kubectl get pods -n default -o name 2>/dev/null | grep -E "(unity-builder-job-|helper-pod-)" | while read pod; do
249+
kubectl delete "$pod" --ignore-not-found=true || true
250+
done || true
251+
kubectl get pvc -n default -o name 2>/dev/null | grep "unity-builder-pvc-" | while read pvc; do
252+
kubectl delete "$pvc" --ignore-not-found=true || true
253+
done || true
254+
kubectl get secrets -n default -o name 2>/dev/null | grep "build-credentials-" | while read secret; do
255+
kubectl delete "$secret" --ignore-not-found=true || true
256+
done || true
257+
sleep 3
258+
rm -rf ./cloud-runner-cache/* || true
259+
docker system prune -f || true
260+
- name: Run cloud-runner-end2end-caching test
180261
timeout-minutes: 60
181-
run: yarn run test "cloud-runner-end2end-retaining" --detectOpenHandles --forceExit --runInBand
262+
run: yarn run test "cloud-runner-end2end-caching" --detectOpenHandles --forceExit --runInBand
182263
env:
183264
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
184265
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
@@ -189,8 +270,9 @@ jobs:
189270
versioning: None
190271
KUBE_STORAGE_CLASS: local-path
191272
PROVIDER_STRATEGY: k8s
192-
containerCpu: '512'
193-
containerMemory: '512'
273+
# Set resource requests for tests - increased memory to prevent OOM kills
274+
containerCpu: '1000'
275+
containerMemory: '1024'
194276
AWS_ACCESS_KEY_ID: test
195277
AWS_SECRET_ACCESS_KEY: test
196278
AWS_S3_ENDPOINT: http://localhost:4566
@@ -216,9 +298,9 @@ jobs:
216298
sleep 3
217299
rm -rf ./cloud-runner-cache/* || true
218300
docker system prune -f || true
219-
- name: Run cloud-runner-hooks test
301+
- name: Run cloud-runner-end2end-retaining test
220302
timeout-minutes: 60
221-
run: yarn run test "cloud-runner-hooks" --detectOpenHandles --forceExit --runInBand
303+
run: yarn run test "cloud-runner-end2end-retaining" --detectOpenHandles --forceExit --runInBand
222304
env:
223305
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
224306
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
@@ -241,6 +323,21 @@ jobs:
241323
AWS_EC2_METADATA_DISABLED: 'true'
242324
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
243325
GITHUB_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
326+
- name: Clean up K8s test resources
327+
run: |
328+
kubectl delete jobs --all --ignore-not-found=true -n default || true
329+
kubectl get pods -n default -o name 2>/dev/null | grep -E "(unity-builder-job-|helper-pod-)" | while read pod; do
330+
kubectl delete "$pod" --ignore-not-found=true || true
331+
done || true
332+
kubectl get pvc -n default -o name 2>/dev/null | grep "unity-builder-pvc-" | while read pvc; do
333+
kubectl delete "$pvc" --ignore-not-found=true || true
334+
done || true
335+
kubectl get secrets -n default -o name 2>/dev/null | grep "build-credentials-" | while read secret; do
336+
kubectl delete "$secret" --ignore-not-found=true || true
337+
done || true
338+
sleep 3
339+
rm -rf ./cloud-runner-cache/* || true
340+
docker system prune -f || true
244341
localstack:
245342
name: Cloud Runner Tests (LocalStack)
246343
runs-on: ubuntu-latest
@@ -298,6 +395,123 @@ jobs:
298395
rm -rf ./cloud-runner-cache/* || true
299396
docker system prune -f || true
300397
df -h
398+
- name: Run cloud-runner-image test (validate image creation)
399+
timeout-minutes: 10
400+
run: yarn run test "cloud-runner-image" --detectOpenHandles --forceExit --runInBand
401+
env:
402+
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
403+
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
404+
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
405+
PROJECT_PATH: test-project
406+
TARGET_PLATFORM: StandaloneWindows64
407+
cloudRunnerTests: true
408+
versioning: None
409+
KUBE_STORAGE_CLASS: local-path
410+
PROVIDER_STRATEGY: aws
411+
AWS_ACCESS_KEY_ID: test
412+
AWS_SECRET_ACCESS_KEY: test
413+
AWS_ENDPOINT: http://localhost:4566
414+
AWS_ENDPOINT_URL: http://localhost:4566
415+
AWS_S3_ENDPOINT: http://localhost:4566
416+
INPUT_AWSS3ENDPOINT: http://localhost:4566
417+
INPUT_AWSENDPOINT: http://localhost:4566
418+
AWS_S3_FORCE_PATH_STYLE: 'true'
419+
AWS_EC2_METADATA_DISABLED: 'true'
420+
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
421+
GITHUB_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
422+
- name: Clean up disk space
423+
run: |
424+
rm -rf ./cloud-runner-cache/* || true
425+
docker system prune -f || true
426+
df -h
427+
- name: Run cloud-runner-environment test (validate environment variables)
428+
timeout-minutes: 30
429+
run: yarn run test "cloud-runner-environment" --detectOpenHandles --forceExit --runInBand
430+
env:
431+
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
432+
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
433+
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
434+
PROJECT_PATH: test-project
435+
TARGET_PLATFORM: StandaloneWindows64
436+
cloudRunnerTests: true
437+
versioning: None
438+
KUBE_STORAGE_CLASS: local-path
439+
PROVIDER_STRATEGY: aws
440+
AWS_ACCESS_KEY_ID: test
441+
AWS_SECRET_ACCESS_KEY: test
442+
AWS_ENDPOINT: http://localhost:4566
443+
AWS_ENDPOINT_URL: http://localhost:4566
444+
AWS_S3_ENDPOINT: http://localhost:4566
445+
INPUT_AWSS3ENDPOINT: http://localhost:4566
446+
INPUT_AWSENDPOINT: http://localhost:4566
447+
AWS_S3_FORCE_PATH_STYLE: 'true'
448+
AWS_EC2_METADATA_DISABLED: 'true'
449+
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
450+
GITHUB_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
451+
- name: Clean up disk space
452+
run: |
453+
rm -rf ./cloud-runner-cache/* || true
454+
docker system prune -f || true
455+
df -h
456+
- name: Run cloud-runner-s3-steps test (validate S3 operations)
457+
timeout-minutes: 30
458+
run: yarn run test "cloud-runner-s3-steps" --detectOpenHandles --forceExit --runInBand
459+
env:
460+
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
461+
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
462+
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
463+
PROJECT_PATH: test-project
464+
TARGET_PLATFORM: StandaloneWindows64
465+
cloudRunnerTests: true
466+
versioning: None
467+
KUBE_STORAGE_CLASS: local-path
468+
PROVIDER_STRATEGY: aws
469+
AWS_STACK_NAME: game-ci-team-pipelines
470+
AWS_ACCESS_KEY_ID: test
471+
AWS_SECRET_ACCESS_KEY: test
472+
AWS_ENDPOINT: http://localhost:4566
473+
AWS_ENDPOINT_URL: http://localhost:4566
474+
AWS_S3_ENDPOINT: http://localhost:4566
475+
INPUT_AWSS3ENDPOINT: http://localhost:4566
476+
INPUT_AWSENDPOINT: http://localhost:4566
477+
AWS_S3_FORCE_PATH_STYLE: 'true'
478+
AWS_EC2_METADATA_DISABLED: 'true'
479+
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
480+
GITHUB_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
481+
- name: Clean up disk space
482+
run: |
483+
rm -rf ./cloud-runner-cache/* || true
484+
docker system prune -f || true
485+
df -h
486+
- name: Run cloud-runner-hooks test (validate hooks functionality)
487+
timeout-minutes: 30
488+
run: yarn run test "cloud-runner-hooks" --detectOpenHandles --forceExit --runInBand
489+
env:
490+
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
491+
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
492+
UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
493+
PROJECT_PATH: test-project
494+
TARGET_PLATFORM: StandaloneWindows64
495+
cloudRunnerTests: true
496+
versioning: None
497+
KUBE_STORAGE_CLASS: local-path
498+
PROVIDER_STRATEGY: aws
499+
AWS_ACCESS_KEY_ID: test
500+
AWS_SECRET_ACCESS_KEY: test
501+
AWS_ENDPOINT: http://localhost:4566
502+
AWS_ENDPOINT_URL: http://localhost:4566
503+
AWS_S3_ENDPOINT: http://localhost:4566
504+
INPUT_AWSS3ENDPOINT: http://localhost:4566
505+
INPUT_AWSENDPOINT: http://localhost:4566
506+
AWS_S3_FORCE_PATH_STYLE: 'true'
507+
AWS_EC2_METADATA_DISABLED: 'true'
508+
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
509+
GITHUB_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
510+
- name: Clean up disk space
511+
run: |
512+
rm -rf ./cloud-runner-cache/* || true
513+
docker system prune -f || true
514+
df -h
301515
- name: Run cloud-runner-end2end-caching test
302516
timeout-minutes: 60
303517
run: yarn run test "cloud-runner-end2end-caching" --detectOpenHandles --forceExit --runInBand
@@ -315,6 +529,11 @@ jobs:
315529
AWS_SECRET_ACCESS_KEY: test
316530
AWS_ENDPOINT: http://localhost:4566
317531
AWS_ENDPOINT_URL: http://localhost:4566
532+
AWS_S3_ENDPOINT: http://localhost:4566
533+
INPUT_AWSS3ENDPOINT: http://localhost:4566
534+
INPUT_AWSENDPOINT: http://localhost:4566
535+
AWS_S3_FORCE_PATH_STYLE: 'true'
536+
AWS_EC2_METADATA_DISABLED: 'true'
318537
GIT_PRIVATE_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
319538
GITHUB_TOKEN: ${{ secrets.GIT_PRIVATE_TOKEN }}
320539
- name: Clean up disk space

src/model/cloud-runner/tests/e2e/cloud-runner-end2end-caching.test.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ describe('Cloud Runner Caching', () => {
2222
setups();
2323
if (CloudRunnerOptions.cloudRunnerDebug) {
2424
it('Run one build it should not use cache, run subsequent build which should use cache', async () => {
25-
const overrides = {
25+
const overrides: any = {
2626
versioning: 'None',
2727
image: 'ubuntu',
2828
projectPath: 'test-project',
@@ -33,7 +33,13 @@ describe('Cloud Runner Caching', () => {
3333
cloudRunnerBranch: `cloud-runner-develop`,
3434
cloudRunnerDebug: true,
3535
};
36-
if (CloudRunnerOptions.providerStrategy === `k8s`) {
36+
// For AWS LocalStack tests, explicitly set provider strategy to 'aws'
37+
// This ensures we use AWS LocalStack instead of defaulting to local-docker
38+
if (process.env.AWS_S3_ENDPOINT && process.env.AWS_S3_ENDPOINT.includes('localhost')) {
39+
overrides.providerStrategy = 'aws';
40+
overrides.containerHookFiles += `,aws-s3-pull-cache,aws-s3-upload-cache`;
41+
}
42+
if (CloudRunnerOptions.providerStrategy === `k8s` || overrides.providerStrategy === `k8s`) {
3743
overrides.containerHookFiles += `,aws-s3-pull-cache,aws-s3-upload-cache`;
3844
}
3945
const buildParameter = await CreateParameters(overrides);

0 commit comments

Comments
 (0)