Skip to content

Database Athena SQL Generation Integration Tests #394

Database Athena SQL Generation Integration Tests

Database Athena SQL Generation Integration Tests #394

# Copyright 2022 Goldman Sachs
#
# Licensed 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.
name: Database Athena SQL Generation Integration Tests
env:
CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }}
CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
on:
schedule:
- cron: "0 0 * * *" # every day at 00:00 on default/base branch
workflow_dispatch:
inputs:
pullRequestId:
description: "Pull request id"
required: false
jobs:
build:
# NOTE: we cannot run this action in fork because secrets are not accessible from forks
# See https://community.sonarsource.com/t/github-action-ci-build-fail-with-set-the-sonar-token-env-variable/38997
if: github.repository == 'finos/legend-engine'
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Set up JDK
uses: actions/setup-java@v1
with:
java-version: 11
server-id: ossrh
server-username: CI_DEPLOY_USERNAME
server-password: CI_DEPLOY_PASSWORD
- name: Configure git
run: |
git config --global committer.email "[email protected]"
git config --global committer.name "FINOS Admin"
git config --global author.email "${GITHUB_ACTOR}@users.noreply.github.com"
git config --global author.name "${GITHUB_ACTOR}"
- name: Download patch
if: github.event.inputs.pullRequestId != ''
run: |
wget --output-document=run.diff http://patch-diff.githubusercontent.com/raw/finos/legend-engine/pull/${{ github.event.inputs.pullRequestId }}.diff
git apply run.diff
- name: Print out mvn version
run: mvn -v
- name: Download deps and plugins
run: mvn de.qaware.maven:go-offline-maven-plugin:resolve-dependencies
- name: Build
env:
MAVEN_OPTS: -Xmx4g
run: mvn -pl legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests -am clean install -DskipTests=true
- name: Download Athena Driver Jar
run: |
mkdir lib
wget --output-document=lib/athenaDriver.jar https://downloads.athena.us-east-1.amazonaws.com/drivers/JDBC/SimbaAthenaJDBC-2.1.3.1003/AthenaJDBC42-2.1.3.1003.jar
- name: SQL Generation Integration Tests
env:
MAVEN_OPTS: -Xmx4g
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_INTEGRATION_USER1_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_INTEGRATION_USER1_SECRET_ACCESS_KEY }}
run: |
set -o pipefail
echo "| Test Representing Db Feature | Support Status |" >> $GITHUB_STEP_SUMMARY
echo "| ---------------------------- | -------------- |" >> $GITHUB_STEP_SUMMARY
mvn -pl legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests -DadditionalClasspathDir=lib -Dtest=Test_Relational_DbSpecific_Athena_UsingPureClientTestSuite test | tee >(grep -o "Tests run:[^T]*" | head -1 | tr -d '\n' >> sql_test_summary.txt) | tee >(echo "Ignored tests deviating from standard: $(grep -c deviating-from-standard)" >> sql_test_summary.txt) | tee >(grep -o "[|] [*][*].*" >> $GITHUB_STEP_SUMMARY)
- name: Write Summary
if: always()
run: |
touch sql_test_summary.txt
cat sql_test_summary.txt >> $GITHUB_STEP_SUMMARY
- name: Upload Summary
if: always() && (github.event.inputs.pullRequestId == '')
uses: actions/upload-artifact@v3
with:
name: ${{github.workflow}}
path: sql_test_summary.txt
retention-days: 1
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@v3
with:
name: test-results
path: legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/target/surefire-reports/*.xml
- name: Upload CI Event
if: always()
uses: actions/upload-artifact@v3
with:
name: event-file
path: ${{ github.event_path }}