This is an automated email from the ASF dual-hosted git repository.
yhu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/beam.git
The following commit(s) were added to refs/heads/master by this push:
new f824adcae1f Add GitHub Workflow Replacements for Jenkins
job_PerformanceTests_JDBC (#28602)
f824adcae1f is described below
commit f824adcae1fd4495c1478631ea0c2a40568e8061
Author: Aleksandr Dudko <[email protected]>
AuthorDate: Thu Sep 28 17:58:17 2023 +0400
Add GitHub Workflow Replacements for Jenkins job_PerformanceTests_JDBC
(#28602)
* Add GitHub Workflow Replacements for Jenkins job_PerformanceTests_JDBC
* Add fix for beam_PerformanceTests_BiqQueryIO_Write_Python_Batch and
beam_PerformanceTests_BiqQueryIO_Read_Python
---
...eam_PerformanceTests_BiqQueryIO_Read_Python.yml | 35 +++++------
...formanceTests_BiqQueryIO_Write_Python_Batch.yml | 33 +++++------
...d_Python.yml => beam_PerformanceTests_JDBC.yml} | 68 +++++++++++++---------
.../performance-tests-job-configs/JDBC.txt | 29 +++++++++
..._Read_Python.txt => biqQueryIO_Read_Python.txt} | 11 +---
...ython.txt => biqQueryIO_Write_Python_Batch.txt} | 11 +---
6 files changed, 106 insertions(+), 81 deletions(-)
diff --git a/.github/workflows/beam_PerformanceTests_BiqQueryIO_Read_Python.yml
b/.github/workflows/beam_PerformanceTests_BiqQueryIO_Read_Python.yml
index 224689ee908..58958de69c8 100644
--- a/.github/workflows/beam_PerformanceTests_BiqQueryIO_Read_Python.yml
+++ b/.github/workflows/beam_PerformanceTests_BiqQueryIO_Read_Python.yml
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-name: Performance BigQueryIO Read Python
+name: PerformanceTests BiqQueryIO Read Python
on:
issue_comment:
@@ -47,6 +47,7 @@ env:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }}
GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
+ beam_PerformanceTests_BiqQueryIO_Read_Python_test_arguments_1: ''
jobs:
beam_PerformanceTests_BiqQueryIO_Read_Python:
@@ -69,24 +70,20 @@ jobs:
comment_phrase: ${{ matrix.job_phrase }}
github_token: ${{ secrets.GITHUB_TOKEN }}
github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }})
- - name: Install Python
- uses: actions/setup-python@v4
+ - name: Setup environment
+ uses: ./.github/actions/setup-environment-action
with:
- python-version: '3.8'
- # This code block prepares configuration data for a task.
- - name: Prepare config
- id: set_config
- shell: bash
- run: |
- # Capture the current date and time in a specific format
- CURDATE=$(date '+%m%d%H%M%S' --utc)
- # Reads the configurations file and exclude lines starting with #
and then remove line breaks
- CURCONFIG=$(grep -v "^#.*"
./.github/workflows/performance-tests-job-configs/config_PerformanceTests_BiqQueryIO_Read_Python.txt
| tr '\n' ' ')
- # Appends the value of CURDATE to the original configuration
- CONFIGWITHDATE=$(echo
"${CURCONFIG/bqio_read_python_/bqio_read_python_$CURDATE}")
- # Assigns $CONFIGWITHDATE to a variable named prepared_config
- echo "prepared_config=$CONFIGWITHDATE" >> $GITHUB_OUTPUT
- - name: run BigQueryIO Read Python Performance Test
+ python-version: 3.8
+ - name: Prepare test arguments
+ uses: ./.github/actions/test-arguments-action
+ with:
+ test-type: load
+ test-language: python
+ argument-file-paths: |
+ ${{ github.workspace
}}/.github/workflows/performance-tests-job-configs/biqQueryIO_Read_Python.txt
+ arguments: |
+ --job_name=performance-tests-bqio-read-python-10gb$(date
'+%m%d%H%M%S' --utc)
+ - name: Run BigQueryIO Read Performance Test Python
uses: ./.github/actions/gradle-command-self-hosted-action
with:
gradle-command: :sdks:python:apache_beam:testing:load_tests:run
@@ -94,4 +91,4 @@ jobs:
-PloadTest.mainClass=apache_beam.io.gcp.bigquery_read_perf_test \
-PpythonVersion=3.8 \
-Prunner=DataflowRunner \
- '-PloadTest.args=${{steps.set_config.outputs.prepared_config}}'
\ No newline at end of file
+
'-PloadTest.args=${{env.beam_PerformanceTests_BiqQueryIO_Read_Python_test_arguments_1}}'
\ No newline at end of file
diff --git
a/.github/workflows/beam_PerformanceTests_BiqQueryIO_Write_Python_Batch.yml
b/.github/workflows/beam_PerformanceTests_BiqQueryIO_Write_Python_Batch.yml
index 24cd1b25ca7..f0fcd20bd3b 100644
--- a/.github/workflows/beam_PerformanceTests_BiqQueryIO_Write_Python_Batch.yml
+++ b/.github/workflows/beam_PerformanceTests_BiqQueryIO_Write_Python_Batch.yml
@@ -13,7 +13,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-name: Performance BigQueryIO Write Python Batch
+name: PerformanceTests BiqQueryIO Write Python Batch
on:
issue_comment:
@@ -47,6 +47,7 @@ env:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }}
GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
+ beam_PerformanceTests_BiqQueryIO_Write_Python_Batch_test_arguments_1: ''
jobs:
beam_PerformanceTests_BiqQueryIO_Write_Python_Batch:
@@ -69,23 +70,19 @@ jobs:
comment_phrase: ${{ matrix.job_phrase }}
github_token: ${{ secrets.GITHUB_TOKEN }}
github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }})
- - name: Install Python
- uses: actions/setup-python@v4
+ - name: Setup environment
+ uses: ./.github/actions/setup-environment-action
with:
- python-version: '3.8'
- # This code block prepares configuration data for a task.
- - name: Prepare config
- id: set_config
- shell: bash
- run: |
- # capture the current date and time in a specific format
- CURDATE=$(date '+%m%d%H%M%S' --utc)
- # reads the configurations file and exclude lines starting with #
and then remove line breaks
- CURCONFIG=$(grep -v "^#.*"
./.github/workflows/performance-tests-job-configs/config_PerformanceTests_BiqQueryIO_Write_Python.txt
| tr '\n' ' ')
- # appends the value of CURDATE to the original configuration
- CONFIGWITHDATE=$(echo
"${CURCONFIG/bqio_write_python_/bqio_write_python_$CURDATE}")
- # assigns $CONFIGWITHDATE to a variable named prepared_config
- echo "prepared_config=$CONFIGWITHDATE" >> $GITHUB_OUTPUT
+ python-version: 3.8
+ - name: Prepare test arguments
+ uses: ./.github/actions/test-arguments-action
+ with:
+ test-type: load
+ test-language: python
+ argument-file-paths: |
+ ${{ github.workspace
}}/.github/workflows/performance-tests-job-configs/biqQueryIO_Write_Python_Batch.txt
+ arguments: |
+ --job_name=performance-tests-bqio-write-python-batch-10gb$(date
'+%m%d%H%M%S' --utc)
- name: run BigQueryIO Write Batch Python Performance Test
uses: ./.github/actions/gradle-command-self-hosted-action
with:
@@ -94,4 +91,4 @@ jobs:
-PloadTest.mainClass=apache_beam.io.gcp.bigquery_write_perf_test \
-PpythonVersion=3.8 \
-Prunner=DataflowRunner \
- '-PloadTest.args=${{steps.set_config.outputs.prepared_config}}'
\ No newline at end of file
+
'-PloadTest.args=${{env.beam_PerformanceTests_BiqQueryIO_Write_Python_Batch_test_arguments_1}}'
\ No newline at end of file
diff --git a/.github/workflows/beam_PerformanceTests_BiqQueryIO_Read_Python.yml
b/.github/workflows/beam_PerformanceTests_JDBC.yml
similarity index 55%
copy from .github/workflows/beam_PerformanceTests_BiqQueryIO_Read_Python.yml
copy to .github/workflows/beam_PerformanceTests_JDBC.yml
index 224689ee908..c5995480e9d 100644
--- a/.github/workflows/beam_PerformanceTests_BiqQueryIO_Read_Python.yml
+++ b/.github/workflows/beam_PerformanceTests_JDBC.yml
@@ -13,13 +13,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-name: Performance BigQueryIO Read Python
+name: PerformanceTests JDBC
on:
issue_comment:
types: [created]
schedule:
- - cron: '0 2 * * *'
+ - cron: '30 1,13 * * *'
workflow_dispatch:
#Setting explicit permissions for the action to avoid the default permissions
which are `write-all` in case of pull_request_target event
@@ -47,20 +47,21 @@ env:
GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GE_ACCESS_TOKEN }}
GRADLE_ENTERPRISE_CACHE_USERNAME: ${{ secrets.GE_CACHE_USERNAME }}
GRADLE_ENTERPRISE_CACHE_PASSWORD: ${{ secrets.GE_CACHE_PASSWORD }}
+ beam_PerformanceTests_JDBC_test_arguments_1: ''
jobs:
- beam_PerformanceTests_BiqQueryIO_Read_Python:
+ beam_PerformanceTests_JDBC:
if: |
github.event_name == 'workflow_dispatch' ||
github.event_name == 'schedule' ||
- github.event.comment.body == 'Run BigQueryIO Read Performance Test
Python'
+ github.event.comment.body == 'Run Java JdbcIO Performance Test'
runs-on: [self-hosted, ubuntu-20.04, main]
- timeout-minutes: 240
+ timeout-minutes: 100
name: ${{ matrix.job_name }} (${{ matrix.job_phrase }})
strategy:
matrix:
- job_name: ["beam_PerformanceTests_BiqQueryIO_Read_Python"]
- job_phrase: ["Run BigQueryIO Read Performance Test Python"]
+ job_name: ["beam_PerformanceTests_JDBC"]
+ job_phrase: ["Run Java JdbcIO Performance Test"]
steps:
- uses: actions/checkout@v3
- name: Setup repository
@@ -69,29 +70,40 @@ jobs:
comment_phrase: ${{ matrix.job_phrase }}
github_token: ${{ secrets.GITHUB_TOKEN }}
github_job: ${{ matrix.job_name }} (${{ matrix.job_phrase }})
- - name: Install Python
- uses: actions/setup-python@v4
+ - name: Authenticate on GCP
+ id: auth
+ uses: google-github-actions/auth@v1
with:
- python-version: '3.8'
- # This code block prepares configuration data for a task.
- - name: Prepare config
- id: set_config
- shell: bash
+ credentials_json: ${{ secrets.GCP_SA_KEY }}
+ project_id: ${{ secrets.GCP_PROJECT_ID }}
+ - name: Set k8s access
+ uses: ./.github/actions/setup-k8s-access
+ with:
+ cluster_name: io-datastores
+ k8s_namespace: ${{ matrix.job_name }}-${{ github.run_id }}
+ - name: Install Postgres for dev
+ id: postgres_for_dev
run: |
- # Capture the current date and time in a specific format
- CURDATE=$(date '+%m%d%H%M%S' --utc)
- # Reads the configurations file and exclude lines starting with #
and then remove line breaks
- CURCONFIG=$(grep -v "^#.*"
./.github/workflows/performance-tests-job-configs/config_PerformanceTests_BiqQueryIO_Read_Python.txt
| tr '\n' ' ')
- # Appends the value of CURDATE to the original configuration
- CONFIGWITHDATE=$(echo
"${CURCONFIG/bqio_read_python_/bqio_read_python_$CURDATE}")
- # Assigns $CONFIGWITHDATE to a variable named prepared_config
- echo "prepared_config=$CONFIGWITHDATE" >> $GITHUB_OUTPUT
- - name: run BigQueryIO Read Python Performance Test
+ kubectl apply -f ${{ github.workspace
}}/.test-infra/kubernetes/postgres/postgres-service-for-local-dev.yml
+ kubectl wait svc/postgres-for-dev
--for=jsonpath='{.status.loadBalancer.ingress[0].ip}' --timeout=120s
+ loadbalancer_ip=$(kubectl get svc postgres-for-dev -o
jsonpath='{.status.loadBalancer.ingress[0].ip}')
+ echo "pfd_ip=$loadbalancer_ip" >> $GITHUB_OUTPUT
+ - name: Prepare test arguments
+ uses: ./.github/actions/test-arguments-action
+ with:
+ test-type: performance
+ test-language: java
+ argument-file-paths: |
+ ${{ github.workspace
}}/.github/workflows/performance-tests-job-configs/JDBC.txt
+ arguments: |
+ --postgresServerName=${{ steps.postgres_for_dev.outputs.pfd_ip }}
+ - name: Run Java JdbcIO Performance Test
uses: ./.github/actions/gradle-command-self-hosted-action
with:
- gradle-command: :sdks:python:apache_beam:testing:load_tests:run
+ gradle-command: :sdks:java:io:jdbc:integrationTest
arguments: |
- -PloadTest.mainClass=apache_beam.io.gcp.bigquery_read_perf_test \
- -PpythonVersion=3.8 \
- -Prunner=DataflowRunner \
- '-PloadTest.args=${{steps.set_config.outputs.prepared_config}}'
\ No newline at end of file
+ --tests org.apache.beam.sdk.io.jdbc.JdbcIOIT \
+ --info \
+ -Dfilesystem=hdfs \
+ -DintegrationTestRunner=dataflow \
+
-DintegrationTestPipelineOptions='[${{env.beam_PerformanceTests_JDBC_test_arguments_1}}]'
\ No newline at end of file
diff --git a/.github/workflows/performance-tests-job-configs/JDBC.txt
b/.github/workflows/performance-tests-job-configs/JDBC.txt
new file mode 100644
index 00000000000..74fd85145c5
--- /dev/null
+++ b/.github/workflows/performance-tests-job-configs/JDBC.txt
@@ -0,0 +1,29 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+--tempRoot=gs://temp-storage-for-perf-tests
+--runner=DataflowRunner
+--numberOfRecords=5000000
+--bigQueryDataset=beam_performance
+--bigQueryTable=jdbcioit_results
+--influxMeasurement=jdbcioit_results
+--postgresUsername=postgres
+--postgresPassword=uuinkks
+--postgresDatabaseName=postgres
+--postgresSsl=false
+--postgresPort=5432
+--autoscalingAlgorithm=NONE
+--numWorkers=5
\ No newline at end of file
diff --git
a/.github/workflows/performance-tests-job-configs/config_PerformanceTests_BiqQueryIO_Read_Python.txt
b/.github/workflows/performance-tests-job-configs/biqQueryIO_Read_Python.txt
similarity index 75%
rename from
.github/workflows/performance-tests-job-configs/config_PerformanceTests_BiqQueryIO_Read_Python.txt
rename to
.github/workflows/performance-tests-job-configs/biqQueryIO_Read_Python.txt
index facf8b91ddb..12428da8d09 100644
---
a/.github/workflows/performance-tests-job-configs/config_PerformanceTests_BiqQueryIO_Read_Python.txt
+++ b/.github/workflows/performance-tests-job-configs/biqQueryIO_Read_Python.txt
@@ -1,4 +1,3 @@
-###############################################################################
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
@@ -13,10 +12,8 @@
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
-# limitations under the License.
-###############################################################################
---job_name=performance-tests-bqio-read-python-10gb0917155348
---project=apache-beam-testing
+# limitations under the License.
+
--region=us-central1
--temp_location=gs://temp-storage-for-perf-tests/loadtests
--input_dataset=beam_performance
@@ -25,9 +22,7 @@
--metrics_dataset=beam_performance
--metrics_table=bqio_read_10GB_results
--influx_measurement=python_bqio_read_10GB_results
---influx_db_name=beam_test_metrics
---influx_hostname=http://10.128.0.96:8086
--input_options=''{\\"num_records\\":10485760,\\"key_size\\":1,\\"value_size\\":1024,\\"algorithm\\":\\"lcg\\"}''
---num_****s=5
+--num_workers=5
--autoscaling_algorithm=NONE
--runner=DataflowRunner
\ No newline at end of file
diff --git
a/.github/workflows/performance-tests-job-configs/config_PerformanceTests_BiqQueryIO_Write_Python.txt
b/.github/workflows/performance-tests-job-configs/biqQueryIO_Write_Python_Batch.txt
similarity index 74%
rename from
.github/workflows/performance-tests-job-configs/config_PerformanceTests_BiqQueryIO_Write_Python.txt
rename to
.github/workflows/performance-tests-job-configs/biqQueryIO_Write_Python_Batch.txt
index b8c6bd9265f..9edec48d3d2 100644
---
a/.github/workflows/performance-tests-job-configs/config_PerformanceTests_BiqQueryIO_Write_Python.txt
+++
b/.github/workflows/performance-tests-job-configs/biqQueryIO_Write_Python_Batch.txt
@@ -1,4 +1,3 @@
-###############################################################################
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
@@ -13,10 +12,8 @@
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
-# limitations under the License.
-###############################################################################
---job_name=performance-tests-bqio-write-python-batch-10gb0917155348
---project=apache-beam-testing
+# limitations under the License.
+
--region=us-central1
--temp_location=gs://temp-storage-for-perf-tests/loadtests
--output_dataset=beam_performance
@@ -25,9 +22,7 @@
--metrics_dataset=beam_performance
--metrics_table=bqio_write_10GB_results
--influx_measurement=python_bqio_write_10GB_results
---influx_db_name=beam_test_metrics
---influx_hostname=http://10.128.0.96:8086
--input_options=''{\\"num_records\\":10485760,\\"key_size\\":1,\\"value_size\\":1024,\\"algorithm\\":\\"lcg\\"}''
---num_****s=5
+--num_workers=5
--autoscaling_algorithm=NONE
--runner=DataflowRunner
\ No newline at end of file