2018-04-18 22:04:23 -07:00
|
|
|
---
|
|
|
|
image: ubuntu:latest
|
|
|
|
|
|
|
|
# XXX - add a deploy stage to publish man pages, docs, and coverage
|
|
|
|
# reports
|
|
|
|
|
|
|
|
stages:
|
|
|
|
- build
|
|
|
|
- test
|
|
|
|
|
2022-02-13 12:26:19 +00:00
|
|
|
.ubuntu-before_script:
|
|
|
|
before_script:
|
|
|
|
- export DEBIAN_FRONTEND=noninteractive
|
|
|
|
- apt-get update -qq
|
|
|
|
- apt-get install --no-install-recommends -y gcc perl liblocale-gettext-perl linux-libc-dev lsb-release make
|
|
|
|
- lsb_release -a
|
|
|
|
- uname -a
|
|
|
|
|
2022-02-13 09:02:58 +00:00
|
|
|
.install-c-build-deps: &install-c-build-deps
|
2024-02-24 15:08:36 +00:00
|
|
|
- apt-get install --no-install-recommends -y build-essential apache2-dev autoconf autoconf-archive automake bison dejagnu flex libpam-dev libtool pkg-config python3-all-dev python3-setuptools ruby-dev swig zlib1g-dev
|
2022-02-13 09:02:58 +00:00
|
|
|
|
2018-04-18 22:04:23 -07:00
|
|
|
build-all:
|
|
|
|
stage: build
|
2022-02-13 12:26:19 +00:00
|
|
|
extends:
|
|
|
|
- .ubuntu-before_script
|
2018-04-18 22:04:23 -07:00
|
|
|
artifacts:
|
|
|
|
name: ${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHA}
|
|
|
|
expire_in: 30 days
|
|
|
|
untracked: true
|
|
|
|
paths:
|
2022-02-13 11:14:20 +00:00
|
|
|
- libraries/libapparmor/
|
|
|
|
- parser/
|
|
|
|
- binutils/
|
|
|
|
- utils/
|
|
|
|
- changehat/mod_apparmor/
|
|
|
|
- changehat/pam_apparmor/
|
|
|
|
- profiles/
|
2018-04-18 22:04:23 -07:00
|
|
|
script:
|
2022-02-13 11:14:20 +00:00
|
|
|
- *install-c-build-deps
|
|
|
|
- cd libraries/libapparmor && ./autogen.sh && ./configure --with-perl --with-python --prefix=/usr && make && cd ../.. || { cat config.log ; exit 1 ; }
|
|
|
|
- make -C parser
|
|
|
|
- make -C binutils
|
|
|
|
- make -C utils
|
|
|
|
- make -C changehat/mod_apparmor
|
|
|
|
- make -C changehat/pam_apparmor
|
|
|
|
- make -C profiles
|
2018-04-18 22:04:23 -07:00
|
|
|
|
2022-02-13 09:02:58 +00:00
|
|
|
test-libapparmor:
|
2018-04-18 22:04:23 -07:00
|
|
|
stage: test
|
2022-02-13 07:49:52 +00:00
|
|
|
needs: ["build-all"]
|
2022-02-13 12:26:19 +00:00
|
|
|
extends:
|
|
|
|
- .ubuntu-before_script
|
2018-04-18 22:04:23 -07:00
|
|
|
script:
|
2022-02-13 11:14:20 +00:00
|
|
|
- *install-c-build-deps
|
|
|
|
- make -C libraries/libapparmor check
|
2022-02-13 09:02:58 +00:00
|
|
|
|
|
|
|
test-parser:
|
|
|
|
stage: test
|
|
|
|
needs: ["build-all"]
|
2022-02-13 12:26:19 +00:00
|
|
|
extends:
|
|
|
|
- .ubuntu-before_script
|
2022-02-13 09:02:58 +00:00
|
|
|
script:
|
2022-02-13 11:14:20 +00:00
|
|
|
- *install-c-build-deps
|
|
|
|
- make -C parser check
|
2022-02-13 09:02:58 +00:00
|
|
|
|
|
|
|
test-binutils:
|
|
|
|
stage: test
|
|
|
|
needs: ["build-all"]
|
2022-02-13 12:26:19 +00:00
|
|
|
extends:
|
|
|
|
- .ubuntu-before_script
|
2022-02-13 09:02:58 +00:00
|
|
|
script:
|
2022-02-13 11:14:20 +00:00
|
|
|
- make -C binutils check
|
2022-02-13 09:02:58 +00:00
|
|
|
|
|
|
|
test-utils:
|
|
|
|
stage: test
|
|
|
|
needs: ["build-all"]
|
2022-02-13 12:26:19 +00:00
|
|
|
extends:
|
|
|
|
- .ubuntu-before_script
|
2022-02-13 09:02:58 +00:00
|
|
|
script:
|
2022-07-16 20:42:07 +02:00
|
|
|
- apt-get install --no-install-recommends -y libc6-dev libjs-jquery libjs-jquery-throttle-debounce libjs-jquery-isonscreen libjs-jquery-tablesorter pyflakes3 python3-coverage python3-notify2 python3-psutil python3-setuptools
|
2022-02-13 15:39:11 +00:00
|
|
|
# See apparmor/apparmor#221
|
|
|
|
- make -C parser/tst gen_dbus
|
|
|
|
- make -C parser/tst gen_xtrans
|
2022-02-13 11:14:20 +00:00
|
|
|
- make -C utils check
|
|
|
|
- make -C utils/test coverage-regression
|
2021-07-13 12:21:52 +02:00
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- utils/test/htmlcov/
|
2021-08-15 16:28:35 +02:00
|
|
|
when: always
|
2018-04-18 22:04:23 -07:00
|
|
|
|
2022-02-13 09:02:58 +00:00
|
|
|
test-mod-apparmor:
|
|
|
|
stage: test
|
|
|
|
needs: ["build-all"]
|
2022-02-13 12:26:19 +00:00
|
|
|
extends:
|
|
|
|
- .ubuntu-before_script
|
2022-02-13 09:02:58 +00:00
|
|
|
script:
|
2022-02-13 11:14:20 +00:00
|
|
|
- make -C changehat/mod_apparmor check
|
2022-02-13 09:02:58 +00:00
|
|
|
|
|
|
|
test-profiles:
|
|
|
|
stage: test
|
|
|
|
needs: ["build-all"]
|
2022-02-13 12:26:19 +00:00
|
|
|
extends:
|
|
|
|
- .ubuntu-before_script
|
2022-02-13 09:02:58 +00:00
|
|
|
script:
|
2022-02-13 11:14:20 +00:00
|
|
|
- make -C profiles check-parser
|
|
|
|
- make -C profiles check-abstractions.d
|
2023-04-18 22:43:00 +02:00
|
|
|
- make -C profiles check-extras
|
2022-02-13 09:02:58 +00:00
|
|
|
|
2022-02-13 07:49:52 +00:00
|
|
|
shellcheck:
|
|
|
|
stage: test
|
|
|
|
needs: []
|
2022-02-13 12:26:19 +00:00
|
|
|
extends:
|
|
|
|
- .ubuntu-before_script
|
2022-02-13 07:49:52 +00:00
|
|
|
script:
|
|
|
|
- apt-get install --no-install-recommends -y file shellcheck xmlstarlet
|
|
|
|
- shellcheck --version
|
2022-02-13 08:47:30 +00:00
|
|
|
- './tests/bin/shellcheck-tree --format=checkstyle
|
2022-02-13 07:49:52 +00:00
|
|
|
| xmlstarlet tr tests/checkstyle2junit.xslt
|
|
|
|
> shellcheck.xml'
|
|
|
|
artifacts:
|
|
|
|
when: always
|
|
|
|
reports:
|
|
|
|
junit: shellcheck.xml
|
|
|
|
|
2018-04-18 22:04:23 -07:00
|
|
|
# Disabled due to aa-logprof dependency on /sbin/apparmor_parser existing
|
2022-02-13 11:14:20 +00:00
|
|
|
# - make -C profiles check-profiles
|
2018-04-18 22:04:23 -07:00
|
|
|
|
|
|
|
# test-pam_apparmor:
|
|
|
|
# - stage: test
|
|
|
|
# - script:
|
|
|
|
# - cd changehat/pam_apparmor && make check
|
2020-07-21 16:39:53 +00:00
|
|
|
|
|
|
|
include:
|
|
|
|
- template: SAST.gitlab-ci.yml
|
2022-02-21 11:31:44 -08:00
|
|
|
- template: Secret-Detection.gitlab-ci.yml
|
2022-02-13 12:49:21 +00:00
|
|
|
|
|
|
|
variables:
|
2022-02-13 13:20:07 +00:00
|
|
|
SAST_EXCLUDED_ANALYZERS: "eslint,flawfinder,semgrep,spotbugs"
|
2022-02-13 13:28:38 +00:00
|
|
|
SAST_BANDIT_EXCLUDED_PATHS: "*/tst/*, */test/*"
|
2023-03-27 10:05:40 -03:00
|
|
|
|
|
|
|
.send-to-coverity: &send-to-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"
|
|
|
|
|
|
|
|
coverity:
|
|
|
|
stage: .post
|
|
|
|
extends:
|
|
|
|
- .ubuntu-before_script
|
|
|
|
only:
|
|
|
|
refs:
|
2023-06-13 20:35:07 +02:00
|
|
|
- master
|
2023-03-27 10:05:40 -03:00
|
|
|
script:
|
|
|
|
- apt-get install --no-install-recommends -y curl git texlive-latex-recommended
|
|
|
|
- *install-c-build-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
|
|
|
|
- *send-to-coverity
|
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- "apparmor-*.tar.gz"
|