Skip to content

Check Junit. Hadoop all Short Medium Long tests. #95

Check Junit. Hadoop all Short Medium Long tests.

Check Junit. Hadoop all Short Medium Long tests. #95

name: Check junits
run-name: "Check Junit. Hadoop ${{ inputs.hadoop }} ${{ inputs.module == 'all' && ' ' || format(':{0}. ', inputs.module ) }}${{ inputs.short_tests && 'Short ' || '' }}${{ inputs.medium_tests && 'Medium ' || '' }}${{ inputs.long_tests && 'Long ' || '' }}${{ ! ( inputs.short_tests || inputs.medium_tests || inputs.long_tests ) && 'Short Medium Long ' || '' }}tests."
on:
workflow_dispatch:
inputs:
hadoop:
type: choice
description: 'Hadoop flavour.'
required: false
default: "hdp3.1"
options:
- "all"
- "hdp3.1"
- "hdi5.1"
- "emr6.1"
- "emr6.13"
module:
type: choice
description: 'OpenCGA module to test.'
required: false
default: "all"
options:
- "all"
- "opencga-analysis"
- "opencga-app"
- "opencga-catalog"
- "opencga-client"
- "opencga-core"
- "opencga-master"
- "opencga-server"
- "opencga-storage"
- "opencga-test"
short_tests:
type: boolean
required: false
default: true
medium_tests:
type: boolean
required: false
default: false
long_tests:
type: boolean
required: false
default: false
mvn_opts:
type: string
required: false
default: ""
jobs:
get_profiles:
name: Test JUnit
runs-on: ubuntu-22.04
outputs:
profiles: ${{ steps.validate.outputs.profiles }}
modules: ${{ steps.validate.outputs.modules }}
hadoop: ${{ steps.validate.outputs.hadoop }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: '10'
- name: Building string profiles to run
id: validate
run: |
if [ -f "./.github/workflows/scripts/get_profiles.sh" ]; then
chmod +x ./.github/workflows/scripts/get_profiles.sh
profiles=$(./.github/workflows/scripts/get_profiles.sh ${{ inputs.short_tests }} ${{ inputs.medium_tests }} ${{ inputs.long_tests }})
modules='["${{ inputs.module }}"]'
hadoop='["${{ inputs.hadoop }}"]'
if [ "${{ inputs.hadoop }}" == "all" ]; then
hadoop='["hdp3.1", "hdi5.1", "emr6.1", "emr6.13"]'
elif [ "${{ inputs.module }}" == "all" ]; then
# Only execute modules with matrix strategy if we are testing one single hadoop profile
modules='["opencga-analysis", "opencga-app", "opencga-catalog", "opencga-client", "opencga-core", "opencga-master", "opencga-server", "opencga-storage", "opencga-test"]'
fi
echo "profiles=$profiles" >> $GITHUB_OUTPUT
echo "modules=$modules" >> $GITHUB_OUTPUT
echo "hadoop=$hadoop" >> $GITHUB_OUTPUT
echo "Executing testing profiles -> $profiles" >> $GITHUB_STEP_SUMMARY
echo "Modules -> $modules" >> $GITHUB_STEP_SUMMARY
echo "Hadoop -> $hadoop" >> $GITHUB_STEP_SUMMARY
#echo "matrix={\"hadoop\": $hadoop, \"modules\": $modules}" >> $GITHUB_OUTPUT
fi
test:
strategy:
matrix:
hadoop: ${{ fromJson(needs.get_profiles.outputs.hadoop) }}
module: ${{ fromJson(needs.get_profiles.outputs.modules) }}
needs: [ get_profiles ]
uses: ./.github/workflows/test-analysis.yml
with:
test_profile: ${{ needs.get_profiles.outputs.profiles }}
mvn_opts: ${{ inputs.mvn_opts }}
hadoop: ${{ matrix.hadoop }}
module: ${{ matrix.module }}
sonar: false
secrets: inherit