--- stages: - linting - unit_test - build - test - deploy image: docker:git services: - docker:dind variables: DOCKER_DRIVER: overlay # Variables for pytest.gitlab-ci.yml PYTHON_VERSIONS: "v3.7 v3.8 v3.9 v3.10" COVERAGE_FILE: sdk-tests-cov.xml # Variables for Container-Scanning.gitlab-ci.yml CI_APPLICATION_REPOSITORY: $CI_REGISTRY_IMAGE #/$CI_COMMIT_REF_SLUG CI_APPLICATION_TAG: $CI_COMMIT_REF_SLUG #$CI_COMMIT_SHA # Variable for pylint/pydocstyle/SAST/Code-Quality.gitlab-ci.yml SRC_PATH: '/src' DOC_PATH: '/docs' # Variable for SAST SAST_EXCLUDED_PATHS: "docs,integration_tests,scripts,tests" SAST_BANDIT_EXCLUDED_PATHS: "docs,integration_tests,scripts,tests" .before_script_docker: &before_script_docker before_script: - docker login -u gitlab-ci-token -p "$CI_BUILD_TOKEN" "$CI_REGISTRY" build_master: stage: build <<: *before_script_docker script: - docker build -t "$CI_REGISTRY_IMAGE:latest" . - docker push "$CI_REGISTRY_IMAGE:latest" rules: - if: '$CI_COMMIT_BRANCH == "master"' build_testing: stage: build <<: *before_script_docker script: - docker build -t "$CI_REGISTRY_IMAGE:${CI_COMMIT_REF_SLUG}" . - docker push "$CI_REGISTRY_IMAGE:${CI_COMMIT_REF_SLUG}" rules: - if: '$CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != "master"' build_stable: stage: build <<: *before_script_docker script: - docker build -t "$CI_REGISTRY_IMAGE:${CI_COMMIT_TAG}" . - docker push "$CI_REGISTRY_IMAGE:${CI_COMMIT_TAG}" rules: - if: '$CI_COMMIT_TAG' .integration_tests: &integration_tests stage: test variables: FF_NETWORK_PER_BUILD: 1 # Enable https://docs.gitlab.com/runner/executors/docker.html#network-per-build feature services: - name: registry.gitlab.com/orange-opensource/lfn/onap/mock_servers/mock-sdc:develop alias: sdc.api.fe.simpledemo.onap.org - name: registry.gitlab.com/orange-opensource/lfn/onap/mock_servers/mock-sdnc:latest alias: sdnc.api.simpledemo.onap.org - name: registry.gitlab.com/orange-opensource/lfn/onap/mock_servers/mock-so:latest alias: so.api.simpledemo.onap.org - name: registry.gitlab.com/orange-opensource/lfn/onap/mock_servers/mock-aai:latest alias: aai.api.sparky.simpledemo.onap.org - name: registry.gitlab.com/orange-opensource/lfn/onap/mock_servers/mock-clamp:develop alias: clamp.api.simpledemo.onap.org - name: registry.gitlab.com/orange-opensource/lfn/onap/mock_servers/mock-cds:latest alias: cds.api.simpledemo.onap.org - name: registry.gitlab.com/orange-opensource/lfn/onap/mock_servers/mock-msb-k8s:latest alias: msb.k8s.api.simpledemo.onap.org - name: registry.gitlab.com/orange-opensource/lfn/onap/mock_servers/mock-dcae/mock-ves:latest alias: ves.api.simpledemo.onap.org - name: registry.gitlab.com/orange-opensource/lfn/onap/mock_servers/mock-dmaap:latest alias: dmaap.api.simpledemo.onap.org script: - pip install . - pip install pytest mock # mock is needed as pytest parse all files before selection - PYTHONPATH=$PYTHONPATH:integration_tests/ ONAP_PYTHON_SDK_SETTINGS="urls" pytest --verbose -c /dev/null --junitxml=pytest-integration.xml integration_tests artifacts: reports: junit: pytest-*.xml integration_tests:3.7: image: python:3.7 <<: *integration_tests integration_tests:3.8: image: python:3.8 <<: *integration_tests integration_tests:3.9: image: python:3.9 <<: *integration_tests integration_tests:3.10: image: python:3.10 <<: *integration_tests pages: stage: deploy image: name: python:3.7 script: - chmod +x scripts/build_all_branches_in.sh - scripts/build_all_branches_in.sh artifacts: paths: - public except: variables: - $JOBS_DISABLED upload: stage: deploy image: name: python:3.8 script: - pip install -r upload-requirements.txt - python setup.py sdist bdist_wheel - twine upload --non-interactive dist/* rules: - if: '$CI_COMMIT_TAG' # https://docs.gitlab.com/ee/update/deprecations.html#dependency-scanning-python-39-and-36-image-deprecation gemnasium-python-dependency_scanning: image: name: registry.gitlab.com/gitlab-org/security-products/analyzers/gemnasium-python:2-python-3.9 include: - remote: 'https://gitlab.com/Orange-OpenSource/lfn/ci_cd/gitlab-ci-templates/raw/master/pylint.gitlab-ci.yml' - remote: 'https://gitlab.com/Orange-OpenSource/lfn/ci_cd/gitlab-ci-templates/-/raw/master/pytest.gitlab-ci.yml' - remote: 'https://gitlab.com/Orange-OpenSource/lfn/ci_cd/gitlab-ci-templates/raw/master/pydocstyle.gitlab-ci.yml' - remote: 'https://gitlab.com/Orange-OpenSource/lfn/ci_cd/gitlab-ci-templates/raw/master/doc8.gitlab-ci.yml' - remote: 'https://gitlab.com/Orange-OpenSource/lfn/ci_cd/gitlab-ci-templates/raw/master/pyup.gitlab-ci.yml' - template: License-Scanning.gitlab-ci.yml - template: Dependency-Scanning.gitlab-ci.yml - template: Jobs/Code-Quality.gitlab-ci.yml - template: SAST.gitlab-ci.yml - template: Container-Scanning.gitlab-ci.yml