xref: /aosp_15_r20/external/aws-crt-java/codebuild/mqtt5-java-canary-test.yml (revision 3c7ae9de214676c52d19f01067dc1a404272dc11)
1*3c7ae9deSAndroid Build Coastguard Workerversion: 0.2
2*3c7ae9deSAndroid Build Coastguard Workerenv:
3*3c7ae9deSAndroid Build Coastguard Worker  shell: bash
4*3c7ae9deSAndroid Build Coastguard Worker  variables:
5*3c7ae9deSAndroid Build Coastguard Worker    CANARY_DURATION: 25200
6*3c7ae9deSAndroid Build Coastguard Worker    CANARY_THREADS: 3
7*3c7ae9deSAndroid Build Coastguard Worker    CANARY_TPS: 50
8*3c7ae9deSAndroid Build Coastguard Worker    CANARY_CLIENT_COUNT: 10
9*3c7ae9deSAndroid Build Coastguard Worker    CANARY_LOG_FILE: 'canary_log.txt'
10*3c7ae9deSAndroid Build Coastguard Worker    CANARY_LOG_LEVEL: 'Error'
11*3c7ae9deSAndroid Build Coastguard Worker    PACKAGE_NAME: 'aws-crt-java'
12*3c7ae9deSAndroid Build Coastguard Worker    CANARY_SERVER_ARN: Mqtt5MosquittoSever
13*3c7ae9deSAndroid Build Coastguard Worker    CANARY_BUILD_S3_DST: mqtt5-canary/s3
14*3c7ae9deSAndroid Build Coastguard Worker    CODEBUILD_TICKET_ITEM: "IoT SDK for Java"
15*3c7ae9deSAndroid Build Coastguard Workerphases:
16*3c7ae9deSAndroid Build Coastguard Worker  install:
17*3c7ae9deSAndroid Build Coastguard Worker    commands:
18*3c7ae9deSAndroid Build Coastguard Worker      - add-apt-repository ppa:openjdk-r/ppa
19*3c7ae9deSAndroid Build Coastguard Worker      - add-apt-repository ppa:ubuntu-toolchain-r/test
20*3c7ae9deSAndroid Build Coastguard Worker      - apt-get update -y
21*3c7ae9deSAndroid Build Coastguard Worker      - sudo apt-get install cmake -y
22*3c7ae9deSAndroid Build Coastguard Worker      - git submodule update --init --recursive
23*3c7ae9deSAndroid Build Coastguard Worker      # Install necessary lib for canary wrapper
24*3c7ae9deSAndroid Build Coastguard Worker      - sudo apt-get install gcc python3-dev -y -f
25*3c7ae9deSAndroid Build Coastguard Worker      - sudo apt-get install pip -y -f
26*3c7ae9deSAndroid Build Coastguard Worker      - python3 -m pip install psutil
27*3c7ae9deSAndroid Build Coastguard Worker      - python3 -m pip install boto3
28*3c7ae9deSAndroid Build Coastguard Worker  build:
29*3c7ae9deSAndroid Build Coastguard Worker    commands:
30*3c7ae9deSAndroid Build Coastguard Worker      - echo Build started on `date`
31*3c7ae9deSAndroid Build Coastguard Worker      - mvn install -DskipTests
32*3c7ae9deSAndroid Build Coastguard Worker      # Get secrets needed
33*3c7ae9deSAndroid Build Coastguard Worker      - export S3_DST=$(aws secretsmanager get-secret-value --secret-id "$CANARY_BUILD_S3_DST" --query "SecretString" | cut -f2,3 -d":" | sed -e 's/[\\\"\}]//g')
34*3c7ae9deSAndroid Build Coastguard Worker      - export GIT_HASH=$(git rev-parse HEAD)
35*3c7ae9deSAndroid Build Coastguard Worker      # Get the endpoint, certificate, and key for connecting to IoT Core
36*3c7ae9deSAndroid Build Coastguard Worker      - export ENDPOINT=$(aws secretsmanager get-secret-value --secret-id ${CANARY_SERVER_ARN} --query "SecretString" | cut -f2 -d":" | sed -e 's/[\\\"\}]//g')
37*3c7ae9deSAndroid Build Coastguard Worker      # Run the Canary
38*3c7ae9deSAndroid Build Coastguard Worker      - cd ./utils/Canary
39*3c7ae9deSAndroid Build Coastguard Worker      - python3 ../../codebuild/CanaryWrapper.py --canary_executable mvn --canary_arguments "compile exec:java -Dexec.mainClass=canary.mqtt5.Mqtt5Canary -Dexec.args=\"--endpoint \"${ENDPOINT}\" --port 1883 --seconds ${CANARY_DURATION} --threads ${CANARY_THREADS} --tps ${CANARY_TPS} --clients ${CANARY_CLIENT_COUNT}\" -Daws.crt.debugnative=true -Daws.crt.log.destination=Stdout -Daws.crt.log.level=${CANARY_LOG_LEVEL}" --git_hash ${GIT_HASH} --git_repo_name $PACKAGE_NAME --codebuild_log_path $CODEBUILD_LOG_PATH --ticket_item "${CODEBUILD_TICKET_ITEM}"
40*3c7ae9deSAndroid Build Coastguard Worker  post_build:
41*3c7ae9deSAndroid Build Coastguard Worker    commands:
42*3c7ae9deSAndroid Build Coastguard Worker      - echo Build completed on `date`
43