-
Notifications
You must be signed in to change notification settings - Fork 98
101 lines (98 loc) · 3.64 KB
/
check-junit-test.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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:
fail-fast: false
matrix:
hadoop: ${{ fromJson(needs.get_profiles.outputs.hadoop) }}
module: ${{ fromJson(needs.get_profiles.outputs.modules) }}
profile: ${{ fromJson(needs.get_profiles.outputs.profiles) }}
needs: [ get_profiles ]
uses: ./.github/workflows/test-analysis.yml
with:
test_profile: ${{ matrix.profiles }}
hadoop: ${{ matrix.hadoop }}
module: ${{ matrix.module }}
mvn_opts: ${{ inputs.mvn_opts }}
sonar: false
secrets: inherit