2424 CARGO_LAMBDA_VERSION : " v0.17.1"
2525 NOSE_PARAMETERIZED_NO_WARN : 1
2626 BY_CANARY : true
27- UV_PYTHON : python3.9
27+ UV_PYTHON : python3.11
2828 CREDENTIAL_DISTRIBUTION_LAMBDA_ARN : ${{ secrets.CREDENTIAL_DISTRIBUTION_LAMBDA_ARN }}
2929 ACCOUNT_RESET_LAMBDA_ARN : ${{ secrets.ACCOUNT_RESET_LAMBDA_ARN }}
3030
5151 - local-invoke
5252 - local-start1
5353 - local-start2
54- - durable-functions
5554 - other-and-e2e
5655 exclude :
5756 # no-container mode only applies to build-integ test suites
6766 test_suite : local-start1
6867 - container_runtime : no-container
6968 test_suite : local-start2
70- - container_runtime : no-container
71- test_suite : durable-functions
7269 - container_runtime : no-container
7370 test_suite : other-and-e2e
7471
@@ -108,7 +105,7 @@ jobs:
108105 fi
109106
110107 - name : Configure AWS credentials via OIDC
111- uses : aws-actions/configure-aws-credentials@v5
108+ uses : aws-actions/configure-aws-credentials@v6
112109 with :
113110 role-to-assume : ${{ secrets.OIDC_ROLE_ARN }}
114111 aws-region : us-east-1
@@ -139,7 +136,7 @@ jobs:
139136
140137 - name : Set up Go
141138 if : contains(fromJSON('["build-integ", "build-integ-java-python-provided", "build-integ-arm64"]'), matrix.test_suite) && matrix.container_runtime == 'no-container'
142- uses : actions/setup-go@v5
139+ uses : actions/setup-go@v6
143140 with :
144141 go-version : ' 1.25'
145142
@@ -297,33 +294,52 @@ jobs:
297294 - name : Get testing resources and credentials
298295 run : |
299296 # Try with skip_role_deletion parameter first
300- test_env_var=$(python3.9 tests/get_testing_resources.py skip_role_deletion)
297+ test_env_var=$(python3.11 tests/get_testing_resources.py skip_role_deletion)
301298
302299 if [ $? -ne 0 ]; then
303300 echo "First attempt with skip_role_deletion failed, trying without parameter..."
304- test_env_var=$(python3.9 tests/get_testing_resources.py)
301+ test_env_var=$(python3.11 tests/get_testing_resources.py)
305302
306303 if [ $? -ne 0 ]; then
307304 echo "get_testing_resources failed. Failed to acquire credentials or test resources."
308305 exit 1
309306 fi
310307 fi
311308
312- # Save current credentials for account reset later
309+ # Save current credentials for account reset later (mask them first)
310+ echo "::add-mask::$AWS_ACCESS_KEY_ID"
311+ echo "::add-mask::$AWS_SECRET_ACCESS_KEY"
312+ echo "::add-mask::$AWS_SESSION_TOKEN"
313313 echo "CI_ACCESS_ROLE_AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID" >> $GITHUB_ENV
314314 echo "CI_ACCESS_ROLE_AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY" >> $GITHUB_ENV
315315 echo "CI_ACCESS_ROLE_AWS_SESSION_TOKEN=$AWS_SESSION_TOKEN" >> $GITHUB_ENV
316316
317- # Set test credentials
318- echo "AWS_ACCESS_KEY_ID=$(echo "$test_env_var" | jq -j ".accessKeyID")" >> $GITHUB_ENV
319- echo "AWS_SECRET_ACCESS_KEY=$(echo "$test_env_var" | jq -j ".secretAccessKey")" >> $GITHUB_ENV
320- echo "AWS_SESSION_TOKEN=$(echo "$test_env_var" | jq -j ".sessionToken")" >> $GITHUB_ENV
321- echo "TASK_TOKEN=$(echo "$test_env_var" | jq -j ".taskToken")" >> $GITHUB_ENV
317+ # Extract test credentials and mask them before setting as env vars
318+ TEST_ACCESS_KEY_ID=$(echo "$test_env_var" | jq -j ".accessKeyID")
319+ TEST_SECRET_ACCESS_KEY=$(echo "$test_env_var" | jq -j ".secretAccessKey")
320+ TEST_SESSION_TOKEN=$(echo "$test_env_var" | jq -j ".sessionToken")
321+ TEST_TASK_TOKEN=$(echo "$test_env_var" | jq -j ".taskToken")
322+
323+ # Mask sensitive credentials so they don't appear in logs
324+ echo "::add-mask::$TEST_ACCESS_KEY_ID"
325+ echo "::add-mask::$TEST_SECRET_ACCESS_KEY"
326+ echo "::add-mask::$TEST_SESSION_TOKEN"
327+ echo "::add-mask::$TEST_TASK_TOKEN"
328+
329+ # Set test credentials as environment variables
330+ echo "AWS_ACCESS_KEY_ID=$TEST_ACCESS_KEY_ID" >> $GITHUB_ENV
331+ echo "AWS_SECRET_ACCESS_KEY=$TEST_SECRET_ACCESS_KEY" >> $GITHUB_ENV
332+ echo "AWS_SESSION_TOKEN=$TEST_SESSION_TOKEN" >> $GITHUB_ENV
333+ echo "TASK_TOKEN=$TEST_TASK_TOKEN" >> $GITHUB_ENV
334+
335+ # Set other test resources (non-sensitive)
322336 echo "AWS_S3_TESTING=$(echo "$test_env_var" | jq -j ".TestBucketName")" >> $GITHUB_ENV
323337 echo "AWS_ECR_TESTING=$(echo "$test_env_var" | jq -j ".TestECRURI")" >> $GITHUB_ENV
324338 echo "AWS_KMS_KEY=$(echo "$test_env_var" | jq -j ".TestKMSKeyArn")" >> $GITHUB_ENV
325339 echo "AWS_SIGNING_PROFILE_NAME=$(echo "$test_env_var" | jq -j ".TestSigningProfileName")" >> $GITHUB_ENV
326340 echo "AWS_SIGNING_PROFILE_VERSION_ARN=$(echo "$test_env_var" | jq -j ".TestSigningProfileARN")" >> $GITHUB_ENV
341+ echo "LMI_SUBNET_ID=$(echo "$test_env_var" | jq -j ".LMISubnetId")" >> $GITHUB_ENV
342+ echo "LMI_SECURITY_GROUP_ID=$(echo "$test_env_var" | jq -j ".LMISecurityGroupId")" >> $GITHUB_ENV
327343
328344 - name : Login to Public ECR
329345 if : matrix.container_runtime != 'no-container' && env.BY_CANARY == 'true'
@@ -368,13 +384,13 @@ jobs:
368384 pytest -vv -n 2 --reruns 3 tests/integration/buildcmd/test_build_cmd_arm64.py -m 'java' -k "${CONTAINER_FILTER}" --json-report --json-report-file=TEST_REPORT-integration-buildcmd-arm64-java-${{ matrix.container_runtime }}.json
369385 ;;
370386 "terraform-build")
371- pytest -vv -n 4 --reruns 4 tests/integration/buildcmd/test_build_terraform_applications.py tests/integration/buildcmd/test_build_terraform_applications_other_cases.py --json-report --json-report-file=TEST_REPORT-integration-terraform-${{ matrix.container_runtime }}.json
387+ pytest -vv -n 4 --reruns 3 tests/integration/buildcmd/test_build_terraform_applications.py tests/integration/buildcmd/test_build_terraform_applications_other_cases.py --json-report --json-report-file=TEST_REPORT-integration-terraform-${{ matrix.container_runtime }}.json
372388 ;;
373389 "package-delete-deploy")
374390 pytest -vv tests/integration/package tests/integration/delete tests/integration/deploy --dist=loadgroup -n 6 --reruns 4 --json-report --json-report-file=TEST_REPORT-integration-package-delete-deploy-${{ matrix.container_runtime }}.json
375391 ;;
376392 "sync")
377- pytest -vv tests/integration/sync -n 6 --reruns 3 --dist loadscope --json-report --json-report-file=TEST_REPORT-integration-sync-${{ matrix.container_runtime }}.json
393+ pytest -vv tests/integration/sync -n 4 --reruns 3 --dist loadscope --json-report --json-report-file=TEST_REPORT-integration-sync-${{ matrix.container_runtime }}.json
378394 ;;
379395 "local-invoke")
380396 pytest -vv --reruns 3 tests/integration/local/invoke tests/integration/local/generate_event --ignore tests/integration/local/invoke/test_invoke_durable.py --json-report --json-report-file=TEST_REPORT-integration-local-invoke-${{ matrix.container_runtime }}.json
@@ -383,14 +399,10 @@ jobs:
383399 pytest -vv --reruns 3 tests/integration/local/start_api --ignore tests/integration/local/start_api/test_start_api_with_terraform_application.py --ignore tests/integration/local/start_api/test_start_api_durable.py --json-report --json-report-file=TEST_REPORT-integration-local-start1-${{ matrix.container_runtime }}.json
384400 ;;
385401 "local-start2")
386- pytest -vv --reruns 3 tests/integration/local/start_lambda tests/integration/local/start_api/test_start_api_with_terraform_application.py --ignore tests/integration/local/start_lambda/test_start_lambda_durable.py --json-report --json-report-file=TEST_REPORT-integration-local-start2-${{ matrix.container_runtime }}.json
387- ;;
388- "durable-functions")
389- pytest -vv --reruns 3 tests/integration/local/invoke/test_invoke_durable.py tests/integration/local/start_api/test_start_api_durable.py tests/integration/local/start_lambda/test_start_lambda_durable.py tests/integration/local/callback/test_callback.py tests/integration/local/execution/test_execution.py --json-report --json-report-file=TEST_REPORT-integration-durable-functions-${{ matrix.container_runtime }}.json
402+ pytest -vv --reruns 3 tests/integration/local/start_lambda tests/integration/local/start_api/test_start_api_with_terraform_application.py tests/integration/local/callback/test_callback.py tests/integration/local/execution/test_execution.py --ignore tests/integration/local/start_lambda/test_start_lambda_durable.py --json-report --json-report-file=TEST_REPORT-integration-local-start2-${{ matrix.container_runtime }}.json
390403 ;;
391404 "other-and-e2e")
392- pytest -vv -n 4 --reruns 4 --dist loadgroup tests/integration tests/end_to_end --ignore=tests/integration/buildcmd --ignore=tests/integration/delete --ignore=tests/integration/deploy --ignore=tests/integration/package --ignore=tests/integration/sync --ignore=tests/integration/local --json-report --json-report-file=TEST_REPORT-integration-others-${{ matrix.container_runtime }}.json
393- pytest -vv --reruns 3 tests/regression --json-report --json-report-file=TEST_REPORT-regression-${{ matrix.container_runtime }}.json
405+ pytest -vv -n 4 --reruns 3 --dist loadgroup tests/integration tests/end_to_end tests/regression --ignore=tests/integration/buildcmd --ignore=tests/integration/delete --ignore=tests/integration/deploy --ignore=tests/integration/package --ignore=tests/integration/sync --ignore=tests/integration/local --json-report --json-report-file=TEST_REPORT-integration-others-${{ matrix.container_runtime }}.json
394406 ;;
395407 esac
396408
0 commit comments