Skip to content

Commit d6dd862

Browse files
feat: handling of ucc modinput-functional tests (#167)
* chore: add ucc_modinput_tests * feat: handling for new modinput functional tests * chore: staging to production shift * chore: rename OLD modinput tests
1 parent d8e72a4 commit d6dd862

File tree

1 file changed

+53
-4
lines changed

1 file changed

+53
-4
lines changed

.github/workflows/reusable-build-test-release.yml

Lines changed: 53 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -369,13 +369,23 @@ jobs:
369369
requirement_test: ${{ steps.testset.outputs.requirement_test }}
370370
scripted_inputs: ${{ steps.testset.outputs.scripted_inputs }}
371371
escu: ${{ steps.testset.outputs.escu }}
372+
ucc_modinput_functional: ${{ steps.modinput-version.outputs.ucc_modinput_tests }}
372373
steps:
373374
- uses: actions/checkout@v3
374375
- id: testset
375-
name: testsets
376+
name: Check available test types
376377
run: |
377378
find tests -type d -maxdepth 1 -mindepth 1 | sed 's|^tests/||g' | while read -r TESTSET; do echo "$TESTSET=true" >> "$GITHUB_OUTPUT"; echo "$TESTSET::true"; done
378-
379+
- id: modinput-version
380+
name: Check modinput tests version
381+
run: |
382+
CENTAURS_MODINPUT_TESTS_CHECK_DIR="tests/modinput_functional/centaurs"
383+
ucc_modinput_tests="true"
384+
if [ -d "$CENTAURS_MODINPUT_TESTS_CHECK_DIR" ]; then
385+
ucc_modinput_tests="false"
386+
fi
387+
echo "ucc_modinput_tests=$ucc_modinput_tests" >> "$GITHUB_OUTPUT"
388+
379389
run-unit-tests:
380390
name: test-unit-python3-${{ matrix.python-version }}
381391
if: ${{ needs.test-inventory.outputs.unit == 'true' }}
@@ -582,6 +592,11 @@ jobs:
582592
with:
583593
source: ${{ steps.uccgen.outputs.OUTPUT }}
584594
if: always()
595+
- name: artifact-openapi
596+
uses: actions/upload-artifact@v3
597+
with:
598+
name: artifact-openapi
599+
path: ${{ github.workspace }}/${{ steps.uccgen.outputs.OUTPUT }}/static/openapi.json
585600
- name: artifact-splunk-base
586601
uses: actions/upload-artifact@v3
587602
with:
@@ -870,8 +885,6 @@ jobs:
870885
always() &&
871886
needs.build.result == 'success'
872887
runs-on: ubuntu-latest
873-
container:
874-
image: ghcr.io/splunk/workflow-engine-base:2.0.3
875888
outputs:
876889
argo-server: ${{ steps.test-setup.outputs.argo-server }}
877890
argo-http1: ${{ steps.test-setup.outputs.argo-http1 }}
@@ -888,14 +901,18 @@ jobs:
888901
addon-upload-path: ${{ steps.test-setup.outputs.addon-upload-path }}
889902
directory-path: ${{ steps.test-setup.outputs.directory-path }}
890903
s3-bucket: ${{ steps.test-setup.outputs.s3-bucket }}
904+
env:
905+
BUILD_NAME: ${{ needs.build.outputs.buildname }}
891906
steps:
892907
- uses: actions/checkout@v3
893908
with:
894909
submodules: recursive
910+
token: ${{ secrets.GH_TOKEN_ADMIN }}
895911
- name: setup for test
896912
id: test-setup
897913
shell: bash
898914
run: |
915+
sudo apt-get install -y crudini
899916
ADDON_NAME=$(crudini --get package/default/app.conf id name | tr '[:lower:]' '[:upper:]')
900917
if [[ -n $(echo "${ADDON_NAME}" | awk -F 'SPLUNK_TA_' '{print $2}') ]];
901918
then
@@ -924,6 +941,38 @@ jobs:
924941
echo "spl-host-suffix=wfe.splgdi.com"
925942
echo "k8s-manifests-branch=main"
926943
} >> "$GITHUB_OUTPUT"
944+
- uses: actions/download-artifact@v3
945+
if: ${{ needs.test-inventory.outputs.ucc_modinput_functional == 'true' }}
946+
id: download-openapi
947+
with:
948+
name: artifact-openapi
949+
path: ${{ github.workspace }}
950+
- name: Setup python
951+
if: steps.download-openapi.conclusion != 'skipped'
952+
uses: actions/setup-python@v4
953+
with:
954+
python-version: 3.7
955+
- name: modinput-test-prerequisites
956+
if: steps.download-openapi.conclusion != 'skipped'
957+
shell: bash
958+
env:
959+
PYTHON_KEYRING_BACKEND: keyring.backends.null.Keyring
960+
run: |
961+
sudo pip3 install poetry==1.2.2
962+
export POETRY_HTTP_BASIC_SPLUNK_ADD_ON_UCC_MODINPUT_TEST_USERNAME=${{ secrets.SA_GH_USER_NAME }}
963+
export POETRY_HTTP_BASIC_SPLUNK_ADD_ON_UCC_MODINPUT_TEST_PASSWORD=${{ secrets.GH_TOKEN_ADMIN }}
964+
poetry install --only modinput
965+
poetry run ucc-test-modinput -o ${{ steps.download-openapi.outputs.download-path }}/openapi.json -t ${{ steps.download-openapi.outputs.download-path }}/tmp/
966+
- name: upload-swagger-artifacts-to-s3
967+
if: steps.download-openapi.conclusion != 'skipped'
968+
id: swaggerupload
969+
env:
970+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
971+
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
972+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
973+
run: |
974+
swagger_name=swagger_$(basename "$BUILD_NAME" .spl)
975+
aws s3 sync "${{ github.workspace }}/tmp/restapi_client/" "s3://ta-production-artifacts/ta-apps/$swagger_name/" --exclude "*" --include "README.md" --include "*swagger_client*" --only-show-errors
927976
928977
run-knowledge-tests:
929978
if: |

0 commit comments

Comments
 (0)