diff --git a/.github/workflows/run_broker_performance_cluster.yaml b/.github/workflows/run_broker_performance_cluster.yaml
index 1fd81c1a9..9935914f9 100644
--- a/.github/workflows/run_broker_performance_cluster.yaml
+++ b/.github/workflows/run_broker_performance_cluster.yaml
@@ -152,436 +152,436 @@ jobs:
echo ${{ steps.emqx_private_ip.outputs.emqx_node_ip3 }}
echo ${{ steps.emqx_private_ip.outputs.emqx_public_ip }}
- xmeter_start:
- runs-on: ubuntu-latest
-
- steps:
- - name: Configure AWS Credentials
- uses: aws-actions/configure-aws-credentials@v1
- with:
- aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}
- aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}
- aws-region: ap-southeast-1
- - name: Start Xmeter Services
- run: |
- aws ec2 start-instances --instance-ids i-0dd6d99916baaa1a8
- aws ec2 start-instances --instance-ids i-05222103df01eb2d7
- sleep 40;
- aws ec2 start-instances --instance-ids i-0c5dccd394ed9be18
- aws ec2 start-instances --instance-ids i-04c1c50b3e4952266
-
- terraform_mysql:
- runs-on: ubuntu-latest
-
- outputs:
- mysql_ip: ${{ steps.mysql_ip.outputs.mysql_ip }}
- mysql_url: ${{ steps.mysql_url.outputs.mysql_url }}
- steps:
- - name: Checkout tf-test-automation
- uses: actions/checkout@v2
- with:
- repository: emqx/tf-test-automation
- ref: emqx-broker
- path: tf-test-automation
- - name: Setup Terraform
- uses: hashicorp/setup-terraform@v1.3.2
- with:
- terraform_wrapper: false
- - name: Terraform Init tf-test-automation
- working-directory: ./tf-test-automation/services/mysql
- id: init1
- run: |
- terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Validate tf-test-automation
- working-directory: ./tf-test-automation/services/mysql
- id: validate1
- run: terraform validate -no-color
- - name: Terraform Apply tf-test-automation
- working-directory: ./tf-test-automation/services/mysql
- id: mysql_url
- run: |
- terraform apply -auto-approve -var="db_password=public123" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- echo "::set-output name=mysql_url::$(terraform output endpoint)"
- - name: Rename and upload mysql tfstate
- working-directory: ./tf-test-automation/services/mysql
- run: |
- mv ./terraform.tfstate ./mysql.tfstate
- - uses: actions/upload-artifact@v2
- if: always()
- with:
- name: tfstate
- path: ./tf-test-automation/services/mysql/mysql.tfstate
- - name: Show mysql url
- id: mysql_ip
- run: |
- ip=`echo "${{ steps.mysql_url.outputs.mysql_url }}"|awk -F ':' '{print $1}'`
- echo "::set-output name=mysql_ip::$ip"
- - name: Show mysql ip
- run: |
- echo ${{ steps.mysql_url.outputs.mysql_url }}
- echo ${{ steps.mysql_ip.outputs.mysql_ip }}
-
- terraform_redis:
- runs-on: ubuntu-latest
-
- outputs:
- redis_private_ip: ${{ steps.redis_ip.outputs.redis_private_ips }}
- redis_public_ip: ${{ steps.redis_ip.outputs.redis_public_ips }}
- steps:
- - name: Checkout tf-test-automation
- uses: actions/checkout@v2
- with:
- repository: emqx/tf-test-automation
- ref: emqx-broker
- path: tf-test-automation
- - name: Setup Terraform
- uses: hashicorp/setup-terraform@v1.3.2
- with:
- terraform_wrapper: false
- - name: Terraform Init tf-test-automation
- working-directory: ./tf-test-automation/services/redis
- id: init
- run: |
- terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Validate tf-test-automation
- working-directory: ./tf-test-automation/services/redis
- id: validate
- run: terraform validate -no-color
- - name: Terraform Apply tf-test-automation
- working-directory: ./tf-test-automation/services/redis
- id: redis_ip
- run: |
- terraform apply -auto-approve -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}" -var="private_key=${{ secrets.CI_SSH_PRIVATE_KEY }}"
- echo "::set-output name=redis_private_ip::$(terraform output redis_private_ips)"
- echo "::set-output name=redis_public_ip::$(terraform output redis_public_ips)"
- - name: Rename and upload redis server tfstate
- working-directory: ./tf-test-automation/services/redis
- run: |
- mv ./terraform.tfstate ./redis.tfstate
- - uses: actions/upload-artifact@v2
- if: always()
- with:
- name: tfstate
- path: ./tf-test-automation/services/redis/redis.tfstate
- - name: Show redis ip
- run: |
- echo ${{ steps.redis_ip.outputs.redis_private_ip }}
- echo ${{ steps.redis_ip.outputs.redis_public_ip }}
-
- terraform_pgsql:
- runs-on: ubuntu-latest
-
- outputs:
- pgsql_url: ${{ steps.pgsql_url.outputs.pgsql_url }}
- pgsql_ip: ${{ steps.pgsql_ip.outputs.pgsql_ip }}
- steps:
- - name: Checkout tf-test-automation
- uses: actions/checkout@v2
- with:
- repository: emqx/tf-test-automation
- ref: emqx-broker
- path: tf-test-automation
- - name: Setup Terraform
- uses: hashicorp/setup-terraform@v1.3.2
- with:
- terraform_wrapper: false
- - name: Terraform Init tf-test-automation
- working-directory: ./tf-test-automation/services/pgsql
- id: init
- run: |
- terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Validate tf-test-automation
- working-directory: ./tf-test-automation/services/pgsql
- id: validate
- run: terraform validate -no-color
- - name: Terraform Apply tf-test-automation
- working-directory: ./tf-test-automation/services/pgsql
- id: pgsql_url
- run: |
- terraform apply -auto-approve -var="db_password=public123" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- echo "::set-output name=pgsql_url::$(terraform output endpoint)"
- - name: Rename and upload pgsql server tfstate
- working-directory: ./tf-test-automation/services/pgsql
- run: |
- mv ./terraform.tfstate ./pgsql.tfstate
- - uses: actions/upload-artifact@v2
- if: always()
- with:
- name: tfstate
- path: ./tf-test-automation/services/pgsql/pgsql.tfstate
- - name: Show pgsql url
- id: pgsql_ip
- run: |
- ip=`echo "${{ steps.pgsql_url.outputs.pgsql_url }}"|awk -F ':' '{print $1}'`
- echo "::set-output name=pgsql_ip::$ip"
- - name: Show pgsql ip
- run: |
- echo ${{ steps.pgsql_url.outputs.pgsql_url }}
- echo ${{ steps.pgsql_ip.outputs.pgsql_ip }}
-
- terraform_mongo:
- runs-on: ubuntu-latest
-
- outputs:
- mongo_private_ip: ${{ steps.mongo_ip.outputs.mongo_private_ip }}
- mongo_public_ip: ${{ steps.mongo_ip.outputs.mongo_public_ip }}
- steps:
- - name: Checkout tf-test-automation
- uses: actions/checkout@v2
- with:
- repository: emqx/tf-test-automation
- ref: emqx-broker
- path: tf-test-automation
- - name: Setup Terraform
- uses: hashicorp/setup-terraform@v1.3.2
- with:
- terraform_wrapper: false
- - name: Terraform Init tf-test-automation
- working-directory: ./tf-test-automation/services/mongodb
- id: init
- run: |
- terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Validate tf-test-automation
- working-directory: ./tf-test-automation/services/mongodb
- id: validate
- run: terraform validate -no-color
- - name: Terraform Apply tf-test-automation
- working-directory: ./tf-test-automation/services/mongodb
- id: mongo_ip
- run: |
- terraform apply -auto-approve -var="db_password=public123" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}" -var="private_key=${{ secrets.CI_SSH_PRIVATE_KEY }}"
- echo "::set-output name=mongo_private_ip::$(terraform output mongo_private_ips)"
- echo "::set-output name=mongo_public_ip::$(terraform output mongo_public_ips)"
- - name: Rename and upload mongo server tfstate
- working-directory: ./tf-test-automation/services/mongodb
- run: |
- mv ./terraform.tfstate ./mongo.tfstate
- - uses: actions/upload-artifact@v2
- if: always()
- with:
- name: tfstate
- path: ./tf-test-automation/services/mongodb/mongo.tfstate
- - name: Show mongo ip
- run: |
- echo ${{ steps.mongo_ip.outputs.mongo_private_ip }}
- echo ${{ steps.mongo_ip.outputs.mongo_public_ip }}
-
- terraform_webhook:
- runs-on: ubuntu-latest
-
- outputs:
- webhook_ip: ${{ steps.webhook_ip.outputs.webhook_ip }}
- steps:
- - name: Checkout tf-test-automation
- uses: actions/checkout@v2
- with:
- repository: emqx/tf-test-automation
- ref: emqx-broker
- path: tf-test-automation
- - name: Setup Terraform
- uses: hashicorp/setup-terraform@v1.3.2
- with:
- terraform_wrapper: false
- - name: Terraform Init tf-test-automation
- working-directory: ./tf-test-automation/services/webhook
- id: init
- run: |
- terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Validate tf-test-automation
- working-directory: ./tf-test-automation/services/webhook
- id: validate
- run: terraform validate -no-color
- - name: Terraform Apply tf-test-automation
- working-directory: ./tf-test-automation/services/webhook
- id: webhook_ip
- run: |
- terraform apply -auto-approve -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}" -var="private_key=${{ secrets.CI_SSH_PRIVATE_KEY }}"
- echo "::set-output name=webhook_ip::$(terraform output webhook_private_ips)"
- - name: Rename and upload webhook server tfstate
- working-directory: ./tf-test-automation/services/webhook
- run: |
- mv ./terraform.tfstate ./webhook.tfstate
- - uses: actions/upload-artifact@v2
- if: always()
- with:
- name: tfstate
- path: ./tf-test-automation/services/webhook/webhook.tfstate
- - name: Show webhook ip
- run: |
- echo ${{ steps.webhook_ip.outputs.webhook_ip }}
-
- master_control:
- runs-on: ubuntu-latest
-
- needs: [xmeter_start, terraform_emqx, terraform_mysql, terraform_redis, terraform_pgsql, terraform_mongo, terraform_webhook]
- steps:
- - uses: actions/checkout@v2
- - uses: actions/setup-java@v1
- with:
- java-version: '8.0.282' # The JDK version to make available on the path.
- java-package: jdk # (jre, jdk, or jdk+fx) - defaults to jdk
- architecture: x64 # (x64 or x86) - defaults to x64
- - name: Checkout emqx-fvt
- uses: actions/checkout@v2
- with:
- repository: emqx/emqx-fvt
- ref: broker_performance_test
- path: emqx-fvt
- - name: install jmeter
- timeout-minutes: 10
- env:
- JMETER_VERSION: 5.3
- run: |
- wget --no-verbose --no-check-certificate -O /tmp/apache-jmeter.tgz https://downloads.apache.org/jmeter/binaries/apache-jmeter-$JMETER_VERSION.tgz
- cd /tmp && tar -xvf apache-jmeter.tgz
- echo "jmeter.save.saveservice.output_format=xml" >> /tmp/apache-jmeter-$JMETER_VERSION/user.properties
- echo "jmeter.save.saveservice.response_data.on_error=true" >> /tmp/apache-jmeter-$JMETER_VERSION/user.properties
- wget --no-verbose -O /tmp/apache-jmeter-$JMETER_VERSION/lib/ext/mqtt-xmeter-fuse-2.0.2-jar-with-dependencies.jar https://raw.githubusercontent.com/xmeter-net/mqtt-jmeter/master/Download/v2.0.2/mqtt-xmeter-fuse-2.0.2-jar-with-dependencies.jar
- ln -s /tmp/apache-jmeter-$JMETER_VERSION /opt/jmeter
- - name: install jmeter plugin
- run: |
- wget --no-verbose -O "/opt/jmeter/lib/mysql-connector-java-8.0.16.jar" https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar
- wget --no-verbose -O "/opt/jmeter/lib/jedis-3.6.0.jar" https://repo1.maven.org/maven2/redis/clients/jedis/3.6.0/jedis-3.6.0.jar
- wget --no-verbose -O "/opt/jmeter/lib/postgresql-42.2.18.jar" https://repo1.maven.org/maven2/org/postgresql/postgresql/42.2.18/postgresql-42.2.18.jar
- wget --no-verbose -O "/opt/jmeter/lib/java-jwt-3.16.0.jar" https://repo1.maven.org/maven2/com/auth0/java-jwt/3.16.0/java-jwt-3.16.0.jar
- wget --no-verbose -O "/opt/jmeter/lib/gmongo-1.5.jar" https://repo1.maven.org/maven2/com/gmongo/gmongo/1.5/gmongo-1.5.jar
- wget --no-verbose -O "/opt/jmeter/lib/mongo-java-driver-3.12.8.jar" https://repo1.maven.org/maven2/org/mongodb/mongo-java-driver/3.12.8/mongo-java-driver-3.12.8.jar
- rm -rf /opt/jmeter/lib/mongo-java-driver-2.11.3.jar
- - name: run jmeter
- run: |
- /opt/jmeter/bin/jmeter.sh \
- -Jjmeter.save.saveservice.output_format=xml -n \
- -t ./emqx-fvt/broker-performance-test-suite/broker_attestation_test.jmx \
- -Demqx_ip=${{ needs.terraform_emqx.outputs.emqx_public_ip }} \
- -Demqx_private_ip1=${{ needs.terraform_emqx.outputs.emqx_node_ip1 }} \
- -Demqx_private_ip2=${{ needs.terraform_emqx.outputs.emqx_node_ip2 }} \
- -Demqx_private_ip3=${{ needs.terraform_emqx.outputs.emqx_node_ip3 }} \
- -Dmysql_ip=${{ needs.terraform_mysql.outputs.mysql_ip }} \
- -Dpgsql_ip=${{ needs.terraform_pgsql.outputs.pgsql_ip }} \
- -Dredis_private_ip=${{ needs.terraform_redis.outputs.redis_private_ip }} \
- -Dredis_public_ip=${{ needs.terraform_redis.outputs.redis_public_ip }} \
- -Dmongo_private_ip=${{ needs.terraform_mongo.outputs.mongo_private_ip }} \
- -Dmongo_public_ip=${{ needs.terraform_mongo.outputs.mongo_public_ip }} \
- -Dhttp_ip=${{ needs.terraform_webhook.outputs.webhook_ip }} \
- -Dxmeter_ip=${{ secrets.XMETER_IP }} \
- -Dplugins_path="/opt/jmeter/lib/ext" \
- -Dxmeter_user=${{ secrets.XMETER_USER }} \
- -Dxmeter_pwd=${{ secrets.XMETER_PWD }} \
- -Dscripts_path="./emqx-fvt/broker-performance-test-suite" \
- -Dreport_file="jmeter_logs/report.txt" \
- -l jmeter_logs/xmeter_process.jtl \
- -j jmeter_logs/xmeter_process.log
- - name: check logs
- run: |
- if cat jmeter_logs/xmeter_process.jtl | grep -e 'true' > /dev/null 2>&1; then
- echo "check logs filed"
- fi
- - name: check report
- run: |
- if cat jmeter_logs/report.txt | grep -e 'err_report_id' > /dev/null 2>&1; then
- echo "check report filed"
- exit 1
- fi
- - uses: actions/upload-artifact@v2
- if: always()
- with:
- name: jmeter_logs_report
- path: ./jmeter_logs
-
- terraform_destroy:
- runs-on: ubuntu-latest
-
- needs: [master_control]
- steps:
- - name: Checkout tf-test-automation
- uses: actions/checkout@v2
- with:
- repository: emqx/tf-test-automation
- ref: cluster
- path: tf-test-automation
- - name: Setup Terraform
- uses: hashicorp/setup-terraform@v1.3.2
- with:
- terraform_wrapper: false
- - uses: actions/download-artifact@v2
- with:
- name: tfstate
- path: ./tf-test-automation/services
- - name: Terraform Init mysql
- working-directory: ./tf-test-automation/services
- run: |
- cp mysql.tfstate ./mysql/terraform.tfstate
- cd ./mysql
- terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Destroy mysql
- working-directory: ./tf-test-automation/services/mysql
- run: |
- terraform destroy -auto-approve -var="db_password=public123" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Init emqx
- working-directory: ./tf-test-automation/services
- run: |
- cp emqx.tfstate ./emqx/terraform.tfstate
- cd ./emqx
- terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Destroy emqx
- working-directory: ./tf-test-automation/services/emqx
- run: |
- terraform destroy -auto-approve -var="region=ap-southeast-1" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Init redis
- working-directory: ./tf-test-automation/services
- run: |
- cp redis.tfstate ./redis/terraform.tfstate
- cd ./redis
- terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Destroy redis
- working-directory: ./tf-test-automation/services/redis
- run: |
- terraform destroy -auto-approve -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}" -var="private_key=${{ secrets.CI_SSH_PRIVATE_KEY }}"
- - name: Terraform Init pgsql
- working-directory: ./tf-test-automation/services
- run: |
- cp pgsql.tfstate ./pgsql/terraform.tfstate
- cd ./pgsql
- terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Destroy pgsql
- working-directory: ./tf-test-automation/services/pgsql
- run: |
- terraform destroy -auto-approve -var="db_password=public123" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Init mongo
- working-directory: ./tf-test-automation/services
- run: |
- cp mongo.tfstate ./mongodb/terraform.tfstate
- cd ./mongodb
- terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Destroy mongo
- working-directory: ./tf-test-automation/services/mongodb
- run: |
- terraform destroy -auto-approve -var="db_password=public123" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Init Webhook
- working-directory: ./tf-test-automation/services
- run: |
- cp webhook.tfstate ./webhook/terraform.tfstate
- cd ./webhook
- terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
- - name: Terraform Destroy Webhook
- working-directory: ./tf-test-automation/services/webhook
- run: |
- terraform destroy -auto-approve -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
-
- xmeter_stop:
- runs-on: ubuntu-latest
-
- needs: [terraform_destroy]
- steps:
- - name: Configure AWS Credentials
- uses: aws-actions/configure-aws-credentials@v1
- with:
- aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}
- aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}
- aws-region: ap-southeast-1
- - name: Start Xmeter Services
- run: |
- aws ec2 stop-instances --instance-ids i-0dd6d99916baaa1a8
- aws ec2 stop-instances --instance-ids i-05222103df01eb2d7
- aws ec2 stop-instances --instance-ids i-0c5dccd394ed9be18
- aws ec2 stop-instances --instance-ids i-04c1c50b3e4952266
+# xmeter_start:
+# runs-on: ubuntu-latest
+#
+# steps:
+# - name: Configure AWS Credentials
+# uses: aws-actions/configure-aws-credentials@v1
+# with:
+# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}
+# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}
+# aws-region: ap-southeast-1
+# - name: Start Xmeter Services
+# run: |
+# aws ec2 start-instances --instance-ids i-0dd6d99916baaa1a8
+# aws ec2 start-instances --instance-ids i-05222103df01eb2d7
+# sleep 40;
+# aws ec2 start-instances --instance-ids i-0c5dccd394ed9be18
+# aws ec2 start-instances --instance-ids i-04c1c50b3e4952266
+#
+# terraform_mysql:
+# runs-on: ubuntu-latest
+#
+# outputs:
+# mysql_ip: ${{ steps.mysql_ip.outputs.mysql_ip }}
+# mysql_url: ${{ steps.mysql_url.outputs.mysql_url }}
+# steps:
+# - name: Checkout tf-test-automation
+# uses: actions/checkout@v2
+# with:
+# repository: emqx/tf-test-automation
+# ref: emqx-broker
+# path: tf-test-automation
+# - name: Setup Terraform
+# uses: hashicorp/setup-terraform@v1.3.2
+# with:
+# terraform_wrapper: false
+# - name: Terraform Init tf-test-automation
+# working-directory: ./tf-test-automation/services/mysql
+# id: init1
+# run: |
+# terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Validate tf-test-automation
+# working-directory: ./tf-test-automation/services/mysql
+# id: validate1
+# run: terraform validate -no-color
+# - name: Terraform Apply tf-test-automation
+# working-directory: ./tf-test-automation/services/mysql
+# id: mysql_url
+# run: |
+# terraform apply -auto-approve -var="db_password=public123" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# echo "::set-output name=mysql_url::$(terraform output endpoint)"
+# - name: Rename and upload mysql tfstate
+# working-directory: ./tf-test-automation/services/mysql
+# run: |
+# mv ./terraform.tfstate ./mysql.tfstate
+# - uses: actions/upload-artifact@v2
+# if: always()
+# with:
+# name: tfstate
+# path: ./tf-test-automation/services/mysql/mysql.tfstate
+# - name: Show mysql url
+# id: mysql_ip
+# run: |
+# ip=`echo "${{ steps.mysql_url.outputs.mysql_url }}"|awk -F ':' '{print $1}'`
+# echo "::set-output name=mysql_ip::$ip"
+# - name: Show mysql ip
+# run: |
+# echo ${{ steps.mysql_url.outputs.mysql_url }}
+# echo ${{ steps.mysql_ip.outputs.mysql_ip }}
+#
+# terraform_redis:
+# runs-on: ubuntu-latest
+#
+# outputs:
+# redis_private_ip: ${{ steps.redis_ip.outputs.redis_private_ips }}
+# redis_public_ip: ${{ steps.redis_ip.outputs.redis_public_ips }}
+# steps:
+# - name: Checkout tf-test-automation
+# uses: actions/checkout@v2
+# with:
+# repository: emqx/tf-test-automation
+# ref: emqx-broker
+# path: tf-test-automation
+# - name: Setup Terraform
+# uses: hashicorp/setup-terraform@v1.3.2
+# with:
+# terraform_wrapper: false
+# - name: Terraform Init tf-test-automation
+# working-directory: ./tf-test-automation/services/redis
+# id: init
+# run: |
+# terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Validate tf-test-automation
+# working-directory: ./tf-test-automation/services/redis
+# id: validate
+# run: terraform validate -no-color
+# - name: Terraform Apply tf-test-automation
+# working-directory: ./tf-test-automation/services/redis
+# id: redis_ip
+# run: |
+# terraform apply -auto-approve -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}" -var="private_key=${{ secrets.CI_SSH_PRIVATE_KEY }}"
+# echo "::set-output name=redis_private_ip::$(terraform output redis_private_ips)"
+# echo "::set-output name=redis_public_ip::$(terraform output redis_public_ips)"
+# - name: Rename and upload redis server tfstate
+# working-directory: ./tf-test-automation/services/redis
+# run: |
+# mv ./terraform.tfstate ./redis.tfstate
+# - uses: actions/upload-artifact@v2
+# if: always()
+# with:
+# name: tfstate
+# path: ./tf-test-automation/services/redis/redis.tfstate
+# - name: Show redis ip
+# run: |
+# echo ${{ steps.redis_ip.outputs.redis_private_ip }}
+# echo ${{ steps.redis_ip.outputs.redis_public_ip }}
+#
+# terraform_pgsql:
+# runs-on: ubuntu-latest
+#
+# outputs:
+# pgsql_url: ${{ steps.pgsql_url.outputs.pgsql_url }}
+# pgsql_ip: ${{ steps.pgsql_ip.outputs.pgsql_ip }}
+# steps:
+# - name: Checkout tf-test-automation
+# uses: actions/checkout@v2
+# with:
+# repository: emqx/tf-test-automation
+# ref: emqx-broker
+# path: tf-test-automation
+# - name: Setup Terraform
+# uses: hashicorp/setup-terraform@v1.3.2
+# with:
+# terraform_wrapper: false
+# - name: Terraform Init tf-test-automation
+# working-directory: ./tf-test-automation/services/pgsql
+# id: init
+# run: |
+# terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Validate tf-test-automation
+# working-directory: ./tf-test-automation/services/pgsql
+# id: validate
+# run: terraform validate -no-color
+# - name: Terraform Apply tf-test-automation
+# working-directory: ./tf-test-automation/services/pgsql
+# id: pgsql_url
+# run: |
+# terraform apply -auto-approve -var="db_password=public123" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# echo "::set-output name=pgsql_url::$(terraform output endpoint)"
+# - name: Rename and upload pgsql server tfstate
+# working-directory: ./tf-test-automation/services/pgsql
+# run: |
+# mv ./terraform.tfstate ./pgsql.tfstate
+# - uses: actions/upload-artifact@v2
+# if: always()
+# with:
+# name: tfstate
+# path: ./tf-test-automation/services/pgsql/pgsql.tfstate
+# - name: Show pgsql url
+# id: pgsql_ip
+# run: |
+# ip=`echo "${{ steps.pgsql_url.outputs.pgsql_url }}"|awk -F ':' '{print $1}'`
+# echo "::set-output name=pgsql_ip::$ip"
+# - name: Show pgsql ip
+# run: |
+# echo ${{ steps.pgsql_url.outputs.pgsql_url }}
+# echo ${{ steps.pgsql_ip.outputs.pgsql_ip }}
+#
+# terraform_mongo:
+# runs-on: ubuntu-latest
+#
+# outputs:
+# mongo_private_ip: ${{ steps.mongo_ip.outputs.mongo_private_ip }}
+# mongo_public_ip: ${{ steps.mongo_ip.outputs.mongo_public_ip }}
+# steps:
+# - name: Checkout tf-test-automation
+# uses: actions/checkout@v2
+# with:
+# repository: emqx/tf-test-automation
+# ref: emqx-broker
+# path: tf-test-automation
+# - name: Setup Terraform
+# uses: hashicorp/setup-terraform@v1.3.2
+# with:
+# terraform_wrapper: false
+# - name: Terraform Init tf-test-automation
+# working-directory: ./tf-test-automation/services/mongodb
+# id: init
+# run: |
+# terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Validate tf-test-automation
+# working-directory: ./tf-test-automation/services/mongodb
+# id: validate
+# run: terraform validate -no-color
+# - name: Terraform Apply tf-test-automation
+# working-directory: ./tf-test-automation/services/mongodb
+# id: mongo_ip
+# run: |
+# terraform apply -auto-approve -var="db_password=public123" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}" -var="private_key=${{ secrets.CI_SSH_PRIVATE_KEY }}"
+# echo "::set-output name=mongo_private_ip::$(terraform output mongo_private_ips)"
+# echo "::set-output name=mongo_public_ip::$(terraform output mongo_public_ips)"
+# - name: Rename and upload mongo server tfstate
+# working-directory: ./tf-test-automation/services/mongodb
+# run: |
+# mv ./terraform.tfstate ./mongo.tfstate
+# - uses: actions/upload-artifact@v2
+# if: always()
+# with:
+# name: tfstate
+# path: ./tf-test-automation/services/mongodb/mongo.tfstate
+# - name: Show mongo ip
+# run: |
+# echo ${{ steps.mongo_ip.outputs.mongo_private_ip }}
+# echo ${{ steps.mongo_ip.outputs.mongo_public_ip }}
+#
+# terraform_webhook:
+# runs-on: ubuntu-latest
+#
+# outputs:
+# webhook_ip: ${{ steps.webhook_ip.outputs.webhook_ip }}
+# steps:
+# - name: Checkout tf-test-automation
+# uses: actions/checkout@v2
+# with:
+# repository: emqx/tf-test-automation
+# ref: emqx-broker
+# path: tf-test-automation
+# - name: Setup Terraform
+# uses: hashicorp/setup-terraform@v1.3.2
+# with:
+# terraform_wrapper: false
+# - name: Terraform Init tf-test-automation
+# working-directory: ./tf-test-automation/services/webhook
+# id: init
+# run: |
+# terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Validate tf-test-automation
+# working-directory: ./tf-test-automation/services/webhook
+# id: validate
+# run: terraform validate -no-color
+# - name: Terraform Apply tf-test-automation
+# working-directory: ./tf-test-automation/services/webhook
+# id: webhook_ip
+# run: |
+# terraform apply -auto-approve -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}" -var="private_key=${{ secrets.CI_SSH_PRIVATE_KEY }}"
+# echo "::set-output name=webhook_ip::$(terraform output webhook_private_ips)"
+# - name: Rename and upload webhook server tfstate
+# working-directory: ./tf-test-automation/services/webhook
+# run: |
+# mv ./terraform.tfstate ./webhook.tfstate
+# - uses: actions/upload-artifact@v2
+# if: always()
+# with:
+# name: tfstate
+# path: ./tf-test-automation/services/webhook/webhook.tfstate
+# - name: Show webhook ip
+# run: |
+# echo ${{ steps.webhook_ip.outputs.webhook_ip }}
+#
+# master_control:
+# runs-on: ubuntu-latest
+#
+# needs: [xmeter_start, terraform_emqx, terraform_mysql, terraform_redis, terraform_pgsql, terraform_mongo, terraform_webhook]
+# steps:
+# - uses: actions/checkout@v2
+# - uses: actions/setup-java@v1
+# with:
+# java-version: '8.0.282' # The JDK version to make available on the path.
+# java-package: jdk # (jre, jdk, or jdk+fx) - defaults to jdk
+# architecture: x64 # (x64 or x86) - defaults to x64
+# - name: Checkout emqx-fvt
+# uses: actions/checkout@v2
+# with:
+# repository: emqx/emqx-fvt
+# ref: broker_performance_test
+# path: emqx-fvt
+# - name: install jmeter
+# timeout-minutes: 10
+# env:
+# JMETER_VERSION: 5.3
+# run: |
+# wget --no-verbose --no-check-certificate -O /tmp/apache-jmeter.tgz https://downloads.apache.org/jmeter/binaries/apache-jmeter-$JMETER_VERSION.tgz
+# cd /tmp && tar -xvf apache-jmeter.tgz
+# echo "jmeter.save.saveservice.output_format=xml" >> /tmp/apache-jmeter-$JMETER_VERSION/user.properties
+# echo "jmeter.save.saveservice.response_data.on_error=true" >> /tmp/apache-jmeter-$JMETER_VERSION/user.properties
+# wget --no-verbose -O /tmp/apache-jmeter-$JMETER_VERSION/lib/ext/mqtt-xmeter-fuse-2.0.2-jar-with-dependencies.jar https://raw.githubusercontent.com/xmeter-net/mqtt-jmeter/master/Download/v2.0.2/mqtt-xmeter-fuse-2.0.2-jar-with-dependencies.jar
+# ln -s /tmp/apache-jmeter-$JMETER_VERSION /opt/jmeter
+# - name: install jmeter plugin
+# run: |
+# wget --no-verbose -O "/opt/jmeter/lib/mysql-connector-java-8.0.16.jar" https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.16/mysql-connector-java-8.0.16.jar
+# wget --no-verbose -O "/opt/jmeter/lib/jedis-3.6.0.jar" https://repo1.maven.org/maven2/redis/clients/jedis/3.6.0/jedis-3.6.0.jar
+# wget --no-verbose -O "/opt/jmeter/lib/postgresql-42.2.18.jar" https://repo1.maven.org/maven2/org/postgresql/postgresql/42.2.18/postgresql-42.2.18.jar
+# wget --no-verbose -O "/opt/jmeter/lib/java-jwt-3.16.0.jar" https://repo1.maven.org/maven2/com/auth0/java-jwt/3.16.0/java-jwt-3.16.0.jar
+# wget --no-verbose -O "/opt/jmeter/lib/gmongo-1.5.jar" https://repo1.maven.org/maven2/com/gmongo/gmongo/1.5/gmongo-1.5.jar
+# wget --no-verbose -O "/opt/jmeter/lib/mongo-java-driver-3.12.8.jar" https://repo1.maven.org/maven2/org/mongodb/mongo-java-driver/3.12.8/mongo-java-driver-3.12.8.jar
+# rm -rf /opt/jmeter/lib/mongo-java-driver-2.11.3.jar
+# - name: run jmeter
+# run: |
+# /opt/jmeter/bin/jmeter.sh \
+# -Jjmeter.save.saveservice.output_format=xml -n \
+# -t ./emqx-fvt/broker-performance-test-suite/broker_attestation_test.jmx \
+# -Demqx_ip=${{ needs.terraform_emqx.outputs.emqx_public_ip }} \
+# -Demqx_private_ip1=${{ needs.terraform_emqx.outputs.emqx_node_ip1 }} \
+# -Demqx_private_ip2=${{ needs.terraform_emqx.outputs.emqx_node_ip2 }} \
+# -Demqx_private_ip3=${{ needs.terraform_emqx.outputs.emqx_node_ip3 }} \
+# -Dmysql_ip=${{ needs.terraform_mysql.outputs.mysql_ip }} \
+# -Dpgsql_ip=${{ needs.terraform_pgsql.outputs.pgsql_ip }} \
+# -Dredis_private_ip=${{ needs.terraform_redis.outputs.redis_private_ip }} \
+# -Dredis_public_ip=${{ needs.terraform_redis.outputs.redis_public_ip }} \
+# -Dmongo_private_ip=${{ needs.terraform_mongo.outputs.mongo_private_ip }} \
+# -Dmongo_public_ip=${{ needs.terraform_mongo.outputs.mongo_public_ip }} \
+# -Dhttp_ip=${{ needs.terraform_webhook.outputs.webhook_ip }} \
+# -Dxmeter_ip=${{ secrets.XMETER_IP }} \
+# -Dplugins_path="/opt/jmeter/lib/ext" \
+# -Dxmeter_user=${{ secrets.XMETER_USER }} \
+# -Dxmeter_pwd=${{ secrets.XMETER_PWD }} \
+# -Dscripts_path="./emqx-fvt/broker-performance-test-suite" \
+# -Dreport_file="jmeter_logs/report.txt" \
+# -l jmeter_logs/xmeter_process.jtl \
+# -j jmeter_logs/xmeter_process.log
+# - name: check logs
+# run: |
+# if cat jmeter_logs/xmeter_process.jtl | grep -e 'true' > /dev/null 2>&1; then
+# echo "check logs filed"
+# fi
+# - name: check report
+# run: |
+# if cat jmeter_logs/report.txt | grep -e 'err_report_id' > /dev/null 2>&1; then
+# echo "check report filed"
+# exit 1
+# fi
+# - uses: actions/upload-artifact@v2
+# if: always()
+# with:
+# name: jmeter_logs_report
+# path: ./jmeter_logs
+#
+# terraform_destroy:
+# runs-on: ubuntu-latest
+#
+# needs: [master_control]
+# steps:
+# - name: Checkout tf-test-automation
+# uses: actions/checkout@v2
+# with:
+# repository: emqx/tf-test-automation
+# ref: cluster
+# path: tf-test-automation
+# - name: Setup Terraform
+# uses: hashicorp/setup-terraform@v1.3.2
+# with:
+# terraform_wrapper: false
+# - uses: actions/download-artifact@v2
+# with:
+# name: tfstate
+# path: ./tf-test-automation/services
+# - name: Terraform Init mysql
+# working-directory: ./tf-test-automation/services
+# run: |
+# cp mysql.tfstate ./mysql/terraform.tfstate
+# cd ./mysql
+# terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Destroy mysql
+# working-directory: ./tf-test-automation/services/mysql
+# run: |
+# terraform destroy -auto-approve -var="db_password=public123" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Init emqx
+# working-directory: ./tf-test-automation/services
+# run: |
+# cp emqx.tfstate ./emqx/terraform.tfstate
+# cd ./emqx
+# terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Destroy emqx
+# working-directory: ./tf-test-automation/services/emqx
+# run: |
+# terraform destroy -auto-approve -var="region=ap-southeast-1" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Init redis
+# working-directory: ./tf-test-automation/services
+# run: |
+# cp redis.tfstate ./redis/terraform.tfstate
+# cd ./redis
+# terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Destroy redis
+# working-directory: ./tf-test-automation/services/redis
+# run: |
+# terraform destroy -auto-approve -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}" -var="private_key=${{ secrets.CI_SSH_PRIVATE_KEY }}"
+# - name: Terraform Init pgsql
+# working-directory: ./tf-test-automation/services
+# run: |
+# cp pgsql.tfstate ./pgsql/terraform.tfstate
+# cd ./pgsql
+# terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Destroy pgsql
+# working-directory: ./tf-test-automation/services/pgsql
+# run: |
+# terraform destroy -auto-approve -var="db_password=public123" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Init mongo
+# working-directory: ./tf-test-automation/services
+# run: |
+# cp mongo.tfstate ./mongodb/terraform.tfstate
+# cd ./mongodb
+# terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Destroy mongo
+# working-directory: ./tf-test-automation/services/mongodb
+# run: |
+# terraform destroy -auto-approve -var="db_password=public123" -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Init Webhook
+# working-directory: ./tf-test-automation/services
+# run: |
+# cp webhook.tfstate ./webhook/terraform.tfstate
+# cd ./webhook
+# terraform init --backend-config="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" --backend-config="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+# - name: Terraform Destroy Webhook
+# working-directory: ./tf-test-automation/services/webhook
+# run: |
+# terraform destroy -auto-approve -var="access_key=${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}" -var="secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}"
+#
+# xmeter_stop:
+# runs-on: ubuntu-latest
+#
+# needs: [terraform_destroy]
+# steps:
+# - name: Configure AWS Credentials
+# uses: aws-actions/configure-aws-credentials@v1
+# with:
+# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_FOR_PERFORMANCE_TESTING }}
+# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_FOR_PERFORMANCE_TESTING }}
+# aws-region: ap-southeast-1
+# - name: Start Xmeter Services
+# run: |
+# aws ec2 stop-instances --instance-ids i-0dd6d99916baaa1a8
+# aws ec2 stop-instances --instance-ids i-05222103df01eb2d7
+# aws ec2 stop-instances --instance-ids i-0c5dccd394ed9be18
+# aws ec2 stop-instances --instance-ids i-04c1c50b3e4952266