@@ -396,8 +396,55 @@ jobs:
396
396
checks : write
397
397
steps :
398
398
- uses : actions/checkout@v3
399
- - name : Setup python
400
- uses : actions/setup-python@v4
399
+ - uses : actions/setup-python@v4
400
+ with :
401
+ python-version : ${{ matrix.python-version }}
402
+ - name : Setup addon
403
+ run : |
404
+ if [ -f "poetry.lock" ]
405
+ then
406
+ mkdir -p package/lib || true
407
+ pip install poetry==1.2.2 poetry-plugin-export==1.2.0
408
+ poetry export --without-hashes -o package/lib/requirements.txt
409
+ poetry export --without-hashes --dev -o requirements_dev.txt
410
+ fi
411
+ if [ ! -f requirements_dev.txt ]; then echo no requirements;exit 0 ;fi
412
+ pip install -r requirements_dev.txt
413
+ - name : Create directories
414
+ run : |
415
+ mkdir -p /opt/splunk/var/log/splunk
416
+ chmod -R 777 /opt/splunk/var/log/splunk
417
+ - name : Copy pytest ini
418
+ run : cp tests/unit/pytest-ci.ini pytest.ini
419
+ - name : Run Pytest with coverage
420
+ run : pytest --cov=./ --cov-report=xml --junitxml=test-results/junit.xml tests/unit
421
+ - uses : actions/upload-artifact@v3
422
+ if : success() || failure()
423
+ with :
424
+ name : test-results-unit-python_${{ matrix.python-version }}
425
+ path : test-results/*
426
+
427
+ run-unit-tests-311 :
428
+ name : test-unit-python3-${{ matrix.python-version }}
429
+ if : ${{ needs.test-inventory.outputs.unit == 'true' }}
430
+ runs-on : ubuntu-latest
431
+ needs :
432
+ - test-inventory
433
+ strategy :
434
+ fail-fast : false
435
+ matrix :
436
+ python-version :
437
+ - " 3.11"
438
+ permissions :
439
+ actions : read
440
+ deployments : read
441
+ contents : read
442
+ packages : read
443
+ statuses : read
444
+ checks : write
445
+ steps :
446
+ - uses : actions/checkout@v3
447
+ - uses : actions/setup-python@v4
401
448
with :
402
449
python-version : ${{ matrix.python-version }}
403
450
- name : Setup addon
@@ -426,7 +473,6 @@ jobs:
426
473
path : test-results/*
427
474
428
475
build :
429
- name : build
430
476
runs-on : ubuntu-latest
431
477
needs :
432
478
- setup-workflow
@@ -559,6 +605,85 @@ jobs:
559
605
path : build/package/deployment**
560
606
if : always()
561
607
608
+ build-311 :
609
+ runs-on : ubuntu-latest
610
+ needs :
611
+ - setup-workflow
612
+ - test-inventory
613
+ - meta
614
+ - compliance-copyrights
615
+ - lint
616
+ - review_secrets
617
+ - semgrep
618
+ - run-unit-tests-311
619
+ - fossa-scan
620
+ if : |
621
+ always() &&
622
+ (needs.run-unit-tests-311.result == 'success' || needs.run-unit-tests-311.result == 'skipped')
623
+ permissions :
624
+ contents : write
625
+ packages : read
626
+ steps :
627
+ - uses : actions/checkout@v3
628
+ with :
629
+ # Very Important semantic-release won't trigger a tagged
630
+ # build if this is not set false
631
+ persist-credentials : false
632
+ - name : Setup python
633
+ uses : actions/setup-python@v4
634
+ with :
635
+ python-version : 3.11
636
+ - name : create requirements file for pip
637
+ run : |
638
+ if [ -f "poetry.lock" ]
639
+ then
640
+ echo " poetry.lock found "
641
+ sudo pip3 install poetry==1.2.2 poetry-plugin-export==1.2.0
642
+ poetry export --without-hashes -o requirements.txt
643
+ if [ "$(grep -cve '^\s*$' requirements.txt)" -ne 0 ]
644
+ then
645
+ echo "Prod dependencies were found, creating package/lib folder"
646
+ mkdir -p package/lib || true
647
+ mv requirements.txt package/lib
648
+ else
649
+ echo "No prod dependencies were found"
650
+ rm requirements.txt
651
+ fi
652
+ poetry export --without-hashes --dev -o requirements_dev.txt
653
+ cat requirements_dev.txt
654
+ fi
655
+ - id : pip-cache
656
+ run : |
657
+ echo "dir=$(pip cache dir)" >> "$GITHUB_OUTPUT"
658
+ - name : pip cache
659
+ uses : actions/cache@v3
660
+ with :
661
+ path : ${{ steps.pip-cache.outputs.dir }}
662
+ key : ${{ runner.os }}-pip-python311-${{ hashFiles('requirements_dev.txt') }}
663
+ restore-keys : |
664
+ ${{ runner.os }}-pip-python311
665
+ - run : pip install -r requirements_dev.txt
666
+ - id : semantic
667
+ if : github.event_name != 'pull_request'
668
+
669
+ with :
670
+ dry_run : true
671
+ git_committer_name : ${{ secrets.SA_GH_USER_NAME }}
672
+ git_committer_email : ${{ secrets.SA_GH_USER_EMAIL }}
673
+ gpg_private_key : ${{ secrets.SA_GPG_PRIVATE_KEY }}
674
+ passphrase : ${{ secrets.SA_GPG_PASSPHRASE }}
675
+ env :
676
+ GITHUB_TOKEN : ${{ github.token }}
677
+ - id : BuildVersion
678
+ uses : splunk/addonfactory-get-splunk-package-version-action@v1
679
+ with :
680
+ SemVer : ${{ steps.semantic.outputs.new_release_version }}
681
+ PrNumber : ${{ github.event.number }}
682
+ - id : uccgen
683
+ uses : splunk/addonfactory-ucc-generator-action@v1
684
+ with :
685
+ version : ${{ steps.BuildVersion.outputs.VERSION }}
686
+
562
687
security-virustotal :
563
688
continue-on-error : true
564
689
name : security-virustotal
0 commit comments