apparmor.d/.gitlab-ci.yml

161 lines
3.5 KiB
YAML
Raw Normal View History

2021-04-04 00:30:06 +02:00
---
2021-11-09 23:41:12 +01:00
include:
- template: Security/SAST.gitlab-ci.yml
2021-04-04 00:30:06 +02:00
variables:
PKGDEST: $CI_PROJECT_DIR/packages
PACKAGER: 'Alexandre Pujol <alexandre@pujol.io>'
stages:
- lint
2021-12-05 01:21:16 +01:00
- test
2021-09-27 20:20:27 +02:00
- build
2021-04-04 00:30:06 +02:00
- preprocess
2023-01-29 22:18:22 +01:00
- deploy
2021-04-04 00:30:06 +02:00
# Code Linter
# -----------
bash:
stage: lint
image: koalaman/shellcheck-alpine
script:
- shellcheck --shell=bash
PKGBUILD configure
2021-04-04 00:30:06 +02:00
debian/apparmor.d.postinst debian/apparmor.d.postrm
2021-11-09 23:41:12 +01:00
golangci-lint:
stage: lint
image: golangci/golangci-lint
script:
- golangci-lint run
2021-11-09 23:41:12 +01:00
hadolint:
stage: lint
image: hadolint/hadolint:latest-alpine
script:
- hadolint dists/build/*/Dockerfile
2021-11-09 23:41:12 +01:00
sast:
stage: lint
2021-04-04 00:30:06 +02:00
2021-12-05 01:21:16 +01:00
# Code test
# ---------
tests:
stage: test
image: golang
2023-01-28 20:44:21 +01:00
coverage: '/Coverage: \d+.\d+/'
2021-12-05 01:21:16 +01:00
script:
- cp tests/journalctl /usr/bin/journalctl
- chmod 755 /usr/bin/journalctl
2023-03-12 18:03:07 +01:00
- mkdir -p /var/log/audit/
- touch /var/log/audit/audit.log /var/log/audit/audit.log.1
2023-01-28 20:44:21 +01:00
- go test ./cmd/aa-log -v -cover -coverprofile=coverage.out
- go tool cover -func=coverage.out
2021-12-05 01:21:16 +01:00
2021-04-04 00:30:06 +02:00
# Package Build
# -------------
archlinux:
2021-09-27 20:20:27 +02:00
stage: build
2022-07-22 13:09:07 +02:00
image: registry.gitlab.com/archlex/packages/builders/archlinux
2021-04-04 00:30:06 +02:00
script:
2021-12-05 01:23:49 +01:00
- sudo pacman -Syu --noconfirm --noprogressbar lsb-release
2021-04-04 00:30:06 +02:00
- makepkg -s --noconfirm --noprogressbar
artifacts:
expire_in: 1 day
paths:
- $PKGDEST/*
debian:
2021-09-27 20:20:27 +02:00
stage: build
2021-04-04 00:30:06 +02:00
image: registry.gitlab.com/archlex/packages/builders/debian
script:
2023-02-05 01:17:15 +01:00
- git config --global --add safe.directory $CI_PROJECT_DIR
2022-10-16 00:37:10 +02:00
- VERSION="0.$(git rev-list --count HEAD)-1"
2021-04-04 00:30:06 +02:00
- mkdir -p "$PKGDEST"
- sudo apt-get update -q && sudo apt-get install -y golang-go lsb-release config-package-dev rsync
2021-04-04 00:30:06 +02:00
- dch --newversion=$VERSION --urgency=medium --distribution=stable --controlmaint "Release $VERSION"
- dpkg-buildpackage -b -d --no-sign
- mv ../*.deb $PKGDEST/
artifacts:
expire_in: 1 day
paths:
- $PKGDEST/*.deb
2022-10-16 00:37:10 +02:00
ubuntu:
extends: debian
variables:
DIST: ubuntu
2021-04-04 00:30:06 +02:00
# Profile Preprocessing
# ---------------------
2021-09-27 20:20:27 +02:00
preprocess-archlinux:
2021-04-04 00:30:06 +02:00
stage: preprocess
image: archlinux
dependencies:
- archlinux
script:
- pacman -Syu --noconfirm --noprogressbar apparmor
2021-08-22 17:02:07 +02:00
- pacman -U --noconfirm --noprogressbar
--overwrite etc/apparmor.d/tunables/global
--overwrite etc/apparmor.d/tunables/xdg-user-dirs
--overwrite etc/apparmor.d/abstractions/trash
2021-08-22 17:02:07 +02:00
$PKGDEST/*
2021-04-04 00:30:06 +02:00
- apparmor_parser --preprocess /etc/apparmor.d 1> /dev/null
2021-09-27 20:20:27 +02:00
preprocess-debian:
stage: preprocess
image: debian
dependencies:
- debian
script:
- apt-get update -q
2021-09-27 21:24:22 +02:00
- apt-get install -y apparmor apparmor-profiles
2021-09-27 20:20:27 +02:00
- dpkg --install $PKGDEST/*
- apparmor_parser --preprocess /etc/apparmor.d 1> /dev/null
2022-10-16 00:37:10 +02:00
preprocess-ubuntu:
stage: preprocess
image: ubuntu
dependencies:
- ubuntu
script:
- apt-get update -q
- apt-get install -y apparmor apparmor-profiles
- dpkg --install $PKGDEST/*
- apparmor_parser --preprocess /etc/apparmor.d 1> /dev/null
2023-01-29 22:18:22 +01:00
preprocess-opensuse:
stage: preprocess
image: opensuse
script:
- zypper install apparmor-profiles go git rsync lsb-release
- ./configure --complain
- make
- make install
- apparmor_parser --preprocess /etc/apparmor.d 1> /dev/null
2023-01-29 22:18:22 +01:00
# Deploy the documentation
# ------------------------
pages:
stage: deploy
image: python
script:
- pip install -r requirements.txt
- mkdocs build --verbose --site-dir public
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH