Executing Playwright tests in parallel on AWS CodeBuild can significantly reduce the overall run duration. AWS CodeBuild supports Batched Build in matrix mode for launching several workers in parallel.
Use AWS CodeBulld Matrix mode to run Playwright tests in parallel with Currents. 1 batch job (1) triggering 3 parallel build jobs (2).
Prerequisites
To enable parallel runs, please make sure that you have privileged access to your AWS Account and that you can create/modify an AWS CodeBuild Project.
Create a buildspec.yml file in the root directory of your application's source code repository. This file defines the build and test steps for your application.
Set the Project ID for pwc command, for example:
The example uses pwc CLI command to run the tests. You can use npx playwright test command and configure @currents/playwright as a reporter. Please refer to the documentation.
The buildspec.yml file uses matrix mode to start 3 containers for running the test in parallel. Each container will have the environment variable WORKER set to 1,2,3 correspondingly, we use it to configure Playwright Sharding--shard $WORKER/3
Configure CURRENTS_RECORD_KEY
Save the Record Key as CURRENTS_RECORD_KEYEnvironment variable. It is strongly recommended to use your Record Key in a secure secrets storage. Please refer to the detailed guide, here is an overview of the steps:
Create a new entry in AWS Secrets Manager with the Record Key. Please note that the generated secret is a JSON document, you should note the json_key of the actual record key value and use it later.
Get the secret ARN
Update the Build Project environment variables as follows:
Variable name: CURRENTS_RECORD_KEY
Variable value: the ARN of previously created secret + json_key, for example: <secret-arn>:<json-key>
Update the IAM execution role to allow reading of previously created secret
Configure AWS Project
Configure AWS-specific project settings like IAM execution policy, resources class and so on. Please refer to AWS CodeBuild documentation for details to explore possible configuration settings.
Configure Source Batch Mode
Set the Project Setting > Edit Source
Configure the repository details, the events that should trigger new builds
Configure Primary source webhook events > Build Type to Batch build to start 3 parallel workers in matrix mode