chore(autotest): add webhook service
This commit is contained in:
parent
eff373b97e
commit
113b63a6ab
|
@ -9,104 +9,104 @@ 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 }}"
|
||||
|
||||
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
|
||||
|
||||
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: |
|
||||
sudo cp /tmp/emqx/*.zip /tmp/emqx.zip
|
||||
- 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.zip"
|
||||
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 }}
|
||||
# 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
|
||||
#
|
||||
# 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: |
|
||||
# sudo cp /tmp/emqx/*.zip /tmp/emqx.zip
|
||||
# - 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.zip"
|
||||
# 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
|
||||
|
@ -315,11 +315,55 @@ jobs:
|
|||
# - 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]
|
||||
# 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
|
||||
|
@ -448,7 +492,17 @@ jobs:
|
|||
# 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
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue