diff --git a/.github/workflows/run_broker_performance_cluster.yaml b/.github/workflows/run_broker_performance_cluster.yaml index 4c5fbed67..82f1a4b11 100644 --- a/.github/workflows/run_broker_performance_cluster.yaml +++ b/.github/workflows/run_broker_performance_cluster.yaml @@ -9,400 +9,400 @@ on: # workflow_dispatch: jobs: - build: - runs-on: ubuntu-20.04 - - strategy: - fail-fast: false - matrix: - profile: - - emqx - otp: - - 24.1.5-3 - os: - - ubuntu20.04 - - container: "ghcr.io/emqx/emqx-builder/5.0-3:${{ matrix.otp }}-${{ matrix.os }}" - +# build: +# runs-on: ubuntu-20.04 +# +# strategy: +# fail-fast: false +# matrix: +# profile: +# - emqx +# otp: +# - 24.1.5-3 +# os: +# - ubuntu20.04 +# +# container: "ghcr.io/emqx/emqx-builder/5.0-3:${{ matrix.otp }}-${{ matrix.os }}" +# +## steps: +## - uses: actions/checkout@v1 +## - name: build zip packages +## run: make ${{ matrix.profile }}-zip +## - name: packages test +## run: | +## export CODE_PATH=$GITHUB_WORKSPACE +## EMQX_NAME=${{ matrix.profile }} .ci/build_packages/tests.sh +## - uses: actions/upload-artifact@v2 +## with: +## name: ${{ matrix.os}} +## path: _packages/**/*.zip # steps: # - uses: actions/checkout@v1 -# - name: build zip packages -# run: make ${{ matrix.profile }}-zip -# - name: packages test +# - name: prepare # run: | -# export CODE_PATH=$GITHUB_WORKSPACE -# EMQX_NAME=${{ matrix.profile }} .ci/build_packages/tests.sh +# echo "EMQX_NAME=${{ matrix.profile }}" >> $GITHUB_ENV +# echo "CODE_PATH=$GITHUB_WORKSPACE" >> $GITHUB_ENV +# echo "EMQX_PKG_NAME=${{ matrix.profile }}-$(./pkg-vsn.sh)-otp${{ matrix.otp }}-${{ matrix.os }}-amd64" >> $GITHUB_ENV +# - name: Get deps git refs for cache +# id: deps-refs +# run: | +# scripts/get-dep-refs.sh +# make clean-all +# - name: load rocksdb cache +# uses: actions/cache@v2 +# with: +# path: _build/default/lib/rocksdb/ +# key: ${{ matrix.os }}-${{ matrix.otp }}-amd64-${{ steps.deps-refs.outputs.DEP_ROCKSDB_REF }} +# - name: load quicer cache +# uses: actions/cache@v2 +# with: +# path: _build/default/lib/quicer/ +# key: ${{ matrix.os }}-${{ matrix.otp }}-amd64-${{ steps.deps-refs.outputs.DEP_QUICER_REF }} +# - name: build and test tgz package +# run: | +# make ${EMQX_NAME}-tgz +# .ci/build_packages/tests.sh "$EMQX_PKG_NAME" tgz +# - name: run static checks +# if: contains(matrix.os, 'ubuntu') +# run: | +# make static_checks +# - name: build and test deb/rpm packages +# run: | +# make ${EMQX_NAME}-pkg +# .ci/build_packages/tests.sh "$EMQX_PKG_NAME" pkg # - uses: actions/upload-artifact@v2 # with: -# name: ${{ matrix.os}} -# path: _packages/**/*.zip - steps: - - uses: actions/checkout@v1 - - name: prepare - run: | - echo "EMQX_NAME=${{ matrix.profile }}" >> $GITHUB_ENV - echo "CODE_PATH=$GITHUB_WORKSPACE" >> $GITHUB_ENV - echo "EMQX_PKG_NAME=${{ matrix.profile }}-$(./pkg-vsn.sh)-otp${{ matrix.otp }}-${{ matrix.os }}-amd64" >> $GITHUB_ENV - - name: Get deps git refs for cache - id: deps-refs - run: | - scripts/get-dep-refs.sh - make clean-all - - name: load rocksdb cache - uses: actions/cache@v2 - with: - path: _build/default/lib/rocksdb/ - key: ${{ matrix.os }}-${{ matrix.otp }}-amd64-${{ steps.deps-refs.outputs.DEP_ROCKSDB_REF }} - - name: load quicer cache - uses: actions/cache@v2 - with: - path: _build/default/lib/quicer/ - key: ${{ matrix.os }}-${{ matrix.otp }}-amd64-${{ steps.deps-refs.outputs.DEP_QUICER_REF }} - - name: build and test tgz package - run: | - make ${EMQX_NAME}-tgz - .ci/build_packages/tests.sh "$EMQX_PKG_NAME" tgz - - name: run static checks - if: contains(matrix.os, 'ubuntu') - run: | - make static_checks - - name: build and test deb/rpm packages - run: | - make ${EMQX_NAME}-pkg - .ci/build_packages/tests.sh "$EMQX_PKG_NAME" pkg - - uses: actions/upload-artifact@v2 - with: - name: ${{ matrix.os }} - path: _packages/${{ matrix.profile}}/*.tar.gz - - terraform_emqx: - runs-on: ubuntu-latest - - needs: [build] - outputs: - emqx_public_ip: ${{ steps.emqx_private_ip.outputs.emqx_public_ip }} - emqx_node_ip1: ${{ steps.emqx_private_ip.outputs.emqx_node_ip1 }} - emqx_node_ip2: ${{ steps.emqx_private_ip.outputs.emqx_node_ip2 }} - emqx_node_ip3: ${{ steps.emqx_private_ip.outputs.emqx_node_ip3 }} - steps: - - uses: actions/checkout@v2 - - uses: actions/download-artifact@v2 - with: - name: ubuntu20.04 - path: /tmp - - name: Download emqx package - run: | - mv /tmp/emqx-5.*.tar.gz /tmp/emqx.tar.gz - ls /tmp - - 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/emqx - 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/emqx - id: validate1 - run: terraform validate -no-color - - name: Terraform Apply tf-test-automation - working-directory: ./tf-test-automation/services/emqx - id: server_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 }}" -var="emqx_package=/tmp/emqx.tar.gz" - echo "::set-output name=emqx_private_ips::$(terraform output emqx_private_ips)" - echo "::set-output name=emqx_public_ips::$(terraform output emqx_public_ips)" - - name: Rename and upload emqx tfstate - working-directory: ./tf-test-automation/services/emqx - run: | - mv ./terraform.tfstate ./emqx.tfstate - - uses: actions/upload-artifact@v2 - if: always() - with: - name: tfstate - path: ./tf-test-automation/services/emqx/emqx.tfstate - - name: Show emqx_private_ips - id: emqx_private_ip - run: | - ip1=`echo "${{ steps.server_ip.outputs.emqx_private_ips }}"|awk -F ',' '{print $1}'` - ip2=`echo "${{ steps.server_ip.outputs.emqx_private_ips }}"|awk -F ',' '{print $2}'` - ip3=`echo "${{ steps.server_ip.outputs.emqx_private_ips }}"|awk -F ',' '{print $3}'` - emqx_public_ip=`echo "${{ steps.server_ip.outputs.emqx_public_ips }}"|awk -F ',' '{print $1}'` - echo "::set-output name=emqx_node_ip1::$ip1" - echo "::set-output name=emqx_node_ip2::$ip2" - echo "::set-output name=emqx_node_ip3::$ip3" - echo "::set-output name=emqx_public_ip::$emqx_public_ip" - - name: Show emqx node ip - run: | - echo ${{ steps.emqx_private_ip.outputs.emqx_node_ip1 }} - echo ${{ steps.emqx_private_ip.outputs.emqx_node_ip2 }} - 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_ip: ${{ steps.redis_ip.outputs.redis_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/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_ip::$(terraform output redis_private_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_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_ip: ${{ steps.mongo_ip.outputs.mongo_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_ip::$(terraform output mongo_private_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_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 }} +# name: ${{ matrix.os }} +# path: _packages/${{ matrix.profile}}/*.tar.gz +# +# terraform_emqx: +# runs-on: ubuntu-latest +# +# needs: [build] +# outputs: +# emqx_public_ip: ${{ steps.emqx_private_ip.outputs.emqx_public_ip }} +# emqx_node_ip1: ${{ steps.emqx_private_ip.outputs.emqx_node_ip1 }} +# emqx_node_ip2: ${{ steps.emqx_private_ip.outputs.emqx_node_ip2 }} +# emqx_node_ip3: ${{ steps.emqx_private_ip.outputs.emqx_node_ip3 }} +# steps: +# - uses: actions/checkout@v2 +# - uses: actions/download-artifact@v2 +# with: +# name: ubuntu20.04 +# path: /tmp +# - name: Download emqx package +# run: | +# mv /tmp/emqx-5.*.tar.gz /tmp/emqx.tar.gz +# ls /tmp +# - 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/emqx +# 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/emqx +# id: validate1 +# run: terraform validate -no-color +# - name: Terraform Apply tf-test-automation +# working-directory: ./tf-test-automation/services/emqx +# id: server_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 }}" -var="emqx_package=/tmp/emqx.tar.gz" +# echo "::set-output name=emqx_private_ips::$(terraform output emqx_private_ips)" +# echo "::set-output name=emqx_public_ips::$(terraform output emqx_public_ips)" +# - name: Rename and upload emqx tfstate +# working-directory: ./tf-test-automation/services/emqx +# run: | +# mv ./terraform.tfstate ./emqx.tfstate +# - uses: actions/upload-artifact@v2 +# if: always() +# with: +# name: tfstate +# path: ./tf-test-automation/services/emqx/emqx.tfstate +# - name: Show emqx_private_ips +# id: emqx_private_ip +# run: | +# ip1=`echo "${{ steps.server_ip.outputs.emqx_private_ips }}"|awk -F ',' '{print $1}'` +# ip2=`echo "${{ steps.server_ip.outputs.emqx_private_ips }}"|awk -F ',' '{print $2}'` +# ip3=`echo "${{ steps.server_ip.outputs.emqx_private_ips }}"|awk -F ',' '{print $3}'` +# emqx_public_ip=`echo "${{ steps.server_ip.outputs.emqx_public_ips }}"|awk -F ',' '{print $1}'` +# echo "::set-output name=emqx_node_ip1::$ip1" +# echo "::set-output name=emqx_node_ip2::$ip2" +# echo "::set-output name=emqx_node_ip3::$ip3" +# echo "::set-output name=emqx_public_ip::$emqx_public_ip" +# - name: Show emqx node ip +# run: | +# echo ${{ steps.emqx_private_ip.outputs.emqx_node_ip1 }} +# echo ${{ steps.emqx_private_ip.outputs.emqx_node_ip2 }} +# 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_ip: ${{ steps.redis_ip.outputs.redis_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/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_ip::$(terraform output redis_private_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_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_ip: ${{ steps.mongo_ip.outputs.mongo_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_ip::$(terraform output mongo_private_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_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] +# 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 @@ -416,6 +416,10 @@ jobs: repository: emqx/emqx-fvt ref: broker_performance_test path: emqx-fvt + - name: Checkout file + run: | + pwd + ls -alt - name: install jmeter timeout-minutes: 10 env: @@ -438,19 +442,21 @@ jobs: rm -rf /opt/jmeter/lib/mongo-java-driver-2.11.3.jar - name: run jmeter run: | + pwd + ls -alt /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_ip=${{ needs.terraform_redis.outputs.redis_ip }} \ - -Dmongo_ip=${{ needs.terraform_mongo.outputs.mongo_ip }} \ - -Dhttp_ip=${{ needs.terraform_webhook.outputs.webhook_ip }} \ - -Dxmeter_ip=$"13.251.133.132" \ + -Demqx_ip="13.229.128.86" \ + -Demqx_private_ip1="172.31.220.102" \ + -Demqx_private_ip2="172.31.221.51" \ + -Demqx_private_ip3="172.31.222.62" \ + -Dmysql_ip="tf-broker-mysql.cxbatr04erdz.ap-southeast-1.rds.amazonaws.com" \ + -Dpgsql_ip="tf-broker-pgsql.cxbatr04erdz.ap-southeast-1.rds.amazonaws.com" \ + -Dredis_ip="172.31.228.226" \ + -Dmongo_ip="172.31.240.65" \ + -Dhttp_ip="172.31.255.240" \ + -Dxmeter_ip="13.251.133.132" \ -Dplugins_path="/opt/jmeter/lib/ext" \ -Dxmeter_user="xfypp@sina.com" \ -Dxmeter_pwd="xfypp@sina.com" \ @@ -475,100 +481,100 @@ jobs: 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 +# 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