--- image: ubuntu:latest # XXX - add a deploy stage to publish man pages, docs, and coverage # reports workflow: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_COMMIT_TAG - if: $CI_COMMIT_BRANCH stages: - build - test .ubuntu-common: before_script: # Install build-dependencies by loading the package list from the ubuntu/debian cloud-init profile. - printf '\e[0K%s:%s:%s[collapsed=true]\r\e[0K%s\n' section_start "$(date +%s)" install_deps "Installing dependencies..." - apt-get update -qq - apt-get install --yes yq make lsb-release - | printf 'include .image-garden.mk\n$(info $(UBUNTU_CLOUD_INIT_USER_DATA_TEMPLATE))\n.PHONY: nothing\nnothing:\n' \ | make -f - nothing \ | yq '.packages | .[]' \ | xargs apt-get install --yes --no-install-recommends - printf '\e[0K%s:%s:%s\r\e[0K\n' section_end "$(date +%s)" install_deps after_script: # Inspect the kernel and lsb-release. - lsb_release -a - uname -a build-all: stage: build extends: - .ubuntu-common script: # Run the spread prepare section to build everything. - yq -r '.prepare' shellcheck.xml" artifacts: when: always reports: junit: shellcheck.xml # Disabled due to aa-logprof dependency on /sbin/apparmor_parser existing # - make -C profiles check-profiles # test-pam_apparmor: # - stage: test # - script: # - cd changehat/pam_apparmor && make check include: - template: SAST.gitlab-ci.yml - template: Secret-Detection.gitlab-ci.yml variables: SAST_EXCLUDED_ANALYZERS: "eslint,flawfinder,semgrep,spotbugs" SAST_BANDIT_EXCLUDED_PATHS: "*/tst/*, */test/*" coverity: stage: .post extends: - .ubuntu-common script: - printf '\e[0K%s:%s:%s[collapsed=true]\r\e[0K%s\n' section_start "$(date +%s)" install_extra_deps "Installing additional dependencies..." - apt-get install --no-install-recommends -y curl git texlive-latex-recommended - printf '\e[0K%s:%s:%s\r\e[0K\n' section_end "$(date +%s)" install_extra_deps - curl -o /tmp/cov-analysis-linux64.tgz https://scan.coverity.com/download/linux64 --form project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN - tar xfz /tmp/cov-analysis-linux64.tgz - COV_VERSION=$(ls -dt cov-analysis-linux64-* | head -1) - PATH=$PATH:$(pwd)/$COV_VERSION/bin - make coverity - curl https://scan.coverity.com/builds?project=$COVERITY_SCAN_PROJECT_NAME --form token=$COVERITY_SCAN_TOKEN --form email=$GITLAB_USER_EMAIL --form file=@$(ls apparmor-*-cov-int.tar.gz) --form version="$(git describe --tags)" --form description="$(git describe --tags) / $CI_COMMIT_TITLE / $CI_COMMIT_REF_NAME:$CI_PIPELINE_ID" artifacts: paths: - "apparmor-*.tar.gz" rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PROJECT_PATH == "apparmor/apparmor"