# 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. # GitHub workflow that runs revised/new ITs name: "Revised ITs workflow" on: workflow_call: inputs: BACKWARD_COMPATIBILITY_IT_ENABLED: description: "Flag for backward compatibility IT" required: false default: false type: string DRUID_PREVIOUS_VERSION: description: "Previous druid versions to run the test against." required: false type: string DRUID_PREVIOUS_VERSION_DOWNLOAD_URL: description: "URL to download the previous druid version." required: false type: string DRUID_PREVIOUS_IT_IMAGE_NAME: description: "Druid previous version image name." required: false type: string workflow_dispatch: jobs: changes: runs-on: ubuntu-latest # Required permissions permissions: pull-requests: read # Set job outputs to values from filter step outputs: # run everything if not a PR core: ${{ steps.filter.outputs.core || github.event_name != 'pull_request'}} # the common extension in revised ITs is different from the one in standard ITs common-extensions: ${{ steps.filter.outputs.common-extensions }} steps: - uses: dorny/paths-filter@v3.0.0 if: github.event_name == 'pull_request' id: filter with: filters: | common-extensions: - 'extension-core/(mysql-metadata-storage|druid-it-tools|druid-lookups-cached-global|druid-histogram|druid-datasketches|druid-parquet-extensions|druid-avro-extensions|druid-protobuf-extensions|druid-orc-extensions|druid-kafka-indexing-service|druid-s3-extensions|druid-multi-stage-query|druid-catalog)/**' core: - '!extension*/**' it: needs: changes strategy: fail-fast: false matrix: #jdk: [8, 11, 17] jdk: [8] it: [HighAvailability, MultiStageQuery, Catalog, BatchIndex, MultiStageQueryWithMM, InputSource, InputFormat, Security, Query] #indexer: [indexer, middleManager] indexer: [middleManager] uses: ./.github/workflows/reusable-revised-its.yml if: ${{ needs.changes.outputs.core == 'true' || needs.changes.outputs.common-extensions == 'true' }} with: build_jdk: ${{ matrix.jdk }} runtime_jdk: ${{ matrix.jdk }} use_indexer: ${{ matrix.indexer }} script: ./it.sh github ${{ matrix.it }} it: ${{ matrix.it }} mysql_driver: com.mysql.jdbc.Driver s3-deep-storage-minio: needs: changes uses: ./.github/workflows/reusable-revised-its.yml if: ${{ needs.changes.outputs.core == 'true' || needs.changes.outputs.common-extensions == 'true' }} with: build_jdk: 8 runtime_jdk: 11 use_indexer: middleManager script: ./it.sh github S3DeepStorage it: S3DeepStorage mysql_driver: com.mysql.jdbc.Driver DRUID_CLOUD_BUCKET: druid-qa DRUID_CLOUD_PATH: aws-${{ github.run_id }}-${{ github.run_attempt }} AWS_REGION: us-east-1 AWS_ACCESS_KEY_ID: admin AWS_SECRET_ACCESS_KEY: miniopassword backward-compatibility-it: needs: changes uses: ./.github/workflows/reusable-revised-its.yml if: ${{ inputs.BACKWARD_COMPATIBILITY_IT_ENABLED == 'true' && (needs.changes.outputs.core == 'true' || needs.changes.outputs.common-extensions == 'true') }} with: build_jdk: 8 runtime_jdk: 8 use_indexer: middleManager script: ./it.sh github BackwardCompatibilityMain it: BackwardCompatibilityMain mysql_driver: com.mysql.jdbc.Driver BACKWARD_COMPATIBILITY_IT_ENABLED: ${{ inputs.BACKWARD_COMPATIBILITY_IT_ENABLED }} DRUID_PREVIOUS_VERSION: ${{ inputs.DRUID_PREVIOUS_VERSION }} DRUID_PREVIOUS_VERSION_DOWNLOAD_URL: ${{ inputs.DRUID_PREVIOUS_VERSION_DOWNLOAD_URL }} DRUID_PREVIOUS_IT_IMAGE_NAME: ${{ inputs.DRUID_PREVIOUS_IT_IMAGE_NAME }} DRUID_CLOUD_BUCKET: druid-qa DRUID_CLOUD_PATH: aws-${{ github.run_id }}-${{ github.run_attempt }} AWS_REGION: us-east-1 AWS_ACCESS_KEY_ID: admin AWS_SECRET_ACCESS_KEY: miniopassword