2022-02-09 15:27:32 +01:00
|
|
|
version: 2.1
|
2022-03-29 23:00:24 +02:00
|
|
|
parameters:
|
|
|
|
fastnetmon_build_version:
|
|
|
|
type: string
|
2022-04-02 02:39:06 +02:00
|
|
|
default: "1.2.1"
|
2022-02-09 15:27:32 +01:00
|
|
|
jobs:
|
2022-04-29 21:38:47 +02:00
|
|
|
build_debian_upstream_package:
|
2022-04-29 22:50:32 +02:00
|
|
|
machine:
|
2022-04-29 22:56:16 +02:00
|
|
|
image: ubuntu-2004:current
|
2022-04-29 21:38:47 +02:00
|
|
|
resource_class: large
|
|
|
|
steps:
|
2022-04-30 17:13:48 +02:00
|
|
|
- run:
|
|
|
|
name: Create folder to share data between host and Docker container with relaxed permissions to allow use of save / restore cache logic
|
2022-04-30 17:26:51 +02:00
|
|
|
command: sudo mkdir /data; sudo chmod 777 /data
|
2022-04-29 22:53:58 +02:00
|
|
|
- run:
|
|
|
|
name: Docker with priviledged mode to run chroot inside and we use tail -f to keep container running
|
2022-04-29 23:42:58 +02:00
|
|
|
command: sudo docker run -d -v /sys/fs/cgroup/:/sys/fs/cgroup:ro -v /data:/data:rw --privileged --cap-add SYS_ADMIN --name linux_priviledged_container debian:bullseye tail -f /dev/null
|
2022-04-29 22:50:32 +02:00
|
|
|
- run: sudo docker exec -it linux_priviledged_container apt-get update; true
|
2022-04-29 22:57:34 +02:00
|
|
|
- run: sudo docker exec -it linux_priviledged_container apt install -y dpkg-dev git pbuilder
|
2022-04-29 22:50:32 +02:00
|
|
|
- run: sudo docker exec -it linux_priviledged_container git clone https://github.com/pavel-odintsov/fastnetmon
|
2022-04-30 17:06:27 +02:00
|
|
|
- run:
|
|
|
|
name: Remove existing capnp bindings to force automatic generation
|
|
|
|
command: sudo docker exec -it linux_priviledged_container rm -f fastnetmon/src/simple_packet_capnp/simple_packet.capnp.c++ fastnetmon/src/simple_packet_capnp/simple_packet.capnp.h
|
2022-04-30 15:28:36 +02:00
|
|
|
- run: sudo docker exec -it linux_priviledged_container git clone https://github.com/pavel-odintsov/fastnetmon-debian-salsa.git fastnetmon-debian-salsa
|
2022-04-29 23:29:07 +02:00
|
|
|
- run: sudo docker exec -it linux_priviledged_container tar -czf fastnetmon_$(sudo docker exec -it linux_priviledged_container head -n 1 fastnetmon-debian-salsa/debian/changelog|awk '{print $2}'|sed 's/[()]//g' | sed -E 's/(\-[0-9]+)?$//').orig.tar.gz fastnetmon
|
2022-04-29 22:50:32 +02:00
|
|
|
- run: sudo docker exec -it linux_priviledged_container ls -la
|
2022-04-29 23:05:30 +02:00
|
|
|
- run: sudo docker exec -it linux_priviledged_container bash -c "cd fastnetmon && rm -rf debian && cp -a ../fastnetmon-debian-salsa/debian/ . && dpkg-buildpackage -S -sa -d"
|
2022-04-29 23:36:49 +02:00
|
|
|
- run:
|
|
|
|
name: List produced source files
|
2022-04-30 14:56:59 +02:00
|
|
|
command: sudo docker exec -it linux_priviledged_container ls -la
|
2022-04-30 16:55:10 +02:00
|
|
|
- run:
|
|
|
|
name: Show content of data folder and permissions for it
|
|
|
|
command: ls -la /data
|
2022-04-29 21:59:55 +02:00
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- "{{ .Environment.CIRCLE_JOB }}_debian_sid_image"
|
2022-04-30 14:56:59 +02:00
|
|
|
- run:
|
|
|
|
name: Check that we have anything in data folder on VM
|
2022-04-29 23:05:30 +02:00
|
|
|
command: ls -la /data
|
|
|
|
- run:
|
|
|
|
name: "Run pbuilder run Docker if we have no image in place"
|
2022-04-30 17:33:51 +02:00
|
|
|
command: "if [ ! -f /data/sid_base.tgz ]; then sudo docker exec -it linux_priviledged_container pbuilder --create --basetgz /data/sid_base.tgz --distribution sid; else true; fi"
|
2022-04-29 21:59:55 +02:00
|
|
|
- save_cache:
|
|
|
|
key: "{{ .Environment.CIRCLE_JOB }}_debian_sid_image"
|
|
|
|
paths:
|
2022-04-29 22:50:32 +02:00
|
|
|
- /data/sid_base.tgz
|
|
|
|
- run: ls -la /data
|
2022-04-29 23:47:19 +02:00
|
|
|
- run: sudo docker exec -it linux_priviledged_container pbuilder --build --basetgz /data/sid_base.tgz --debbuildopts "-sa" /fastnetmon_$(sudo docker exec -it linux_priviledged_container head -n 1 fastnetmon-debian-salsa/debian/changelog|awk '{print $2}'|sed 's/[()]//g').dsc
|
2022-04-21 22:02:00 +02:00
|
|
|
build_docker:
|
|
|
|
machine:
|
|
|
|
image: ubuntu-2004:current
|
|
|
|
steps:
|
|
|
|
- checkout
|
2022-04-21 22:19:12 +02:00
|
|
|
- run: docker build -t ghcr.io/pavel-odintsov/fastnetmon-community:1.2.0 -t ghcr.io/pavel-odintsov/fastnetmon-community:latest - < src/Dockerfile
|
2022-04-21 22:02:00 +02:00
|
|
|
- run: sudo docker images
|
2022-04-22 00:45:14 +02:00
|
|
|
- run: echo $CR_PAT | sudo docker login ghcr.io -u pavel-odintsov --password-stdin
|
2022-04-21 22:02:00 +02:00
|
|
|
- run: sudo docker push ghcr.io/pavel-odintsov/fastnetmon-community:1.2.0
|
|
|
|
- run: sudo docker push ghcr.io/pavel-odintsov/fastnetmon-community:latest
|
2022-04-21 20:32:41 +02:00
|
|
|
build_ubuntu:
|
|
|
|
parameters:
|
|
|
|
docker_image:
|
|
|
|
type: string
|
|
|
|
ubuntu_version:
|
|
|
|
type: string
|
2022-04-03 22:21:12 +02:00
|
|
|
docker:
|
2022-04-21 20:32:41 +02:00
|
|
|
- image: << parameters.docker_image >>
|
2022-04-03 22:21:12 +02:00
|
|
|
resource_class: large
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- run: apt-get update; true
|
|
|
|
- run: apt-get install -y perl wget python3-pip
|
|
|
|
- run: pip3 install s3cmd
|
|
|
|
- run:
|
|
|
|
name: install_required_packages
|
|
|
|
no_output_timeout: 20m
|
|
|
|
command: perl src/fastnetmon_build.pl --install_dependency_packages_only
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- "{{ .Environment.CIRCLE_JOB }}_dependencies_31_10_2020"
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- "{{ .Environment.CIRCLE_JOB }}_gcc_25_10_2020"
|
|
|
|
- run:
|
|
|
|
name: install_gcc
|
|
|
|
no_output_timeout: 120m
|
|
|
|
command: perl src/fastnetmon_build.pl --build_gcc_only
|
|
|
|
- save_cache:
|
|
|
|
key: "{{ .Environment.CIRCLE_JOB }}_gcc_25_10_2020"
|
|
|
|
paths:
|
|
|
|
- /opt/gcc930
|
|
|
|
- run:
|
|
|
|
name: install_dependencies
|
|
|
|
no_output_timeout: 180m
|
|
|
|
command: perl src/fastnetmon_build.pl --build_dependencies_only
|
|
|
|
- run:
|
|
|
|
name: collect_debug
|
|
|
|
command: cat /tmp/fastnetmon_install.log
|
|
|
|
when: on_fail
|
|
|
|
- save_cache:
|
|
|
|
key: "{{ .Environment.CIRCLE_JOB }}_dependencies_31_10_2020"
|
|
|
|
paths:
|
|
|
|
- /opt
|
|
|
|
- run: perl src/fastnetmon_build.pl --use-git-master --build_fastnetmon_only
|
|
|
|
- run: perl src/scripts/build_libary_bundle.pl /opt/fastnetmon_libraries_bundle.tar.gz
|
|
|
|
- store_artifacts:
|
|
|
|
path: /opt/fastnetmon_libraries_bundle.tar.gz
|
|
|
|
- store_artifacts:
|
|
|
|
path: /tmp/fastnetmon_install.log
|
2022-04-21 20:32:41 +02:00
|
|
|
- run: src/scripts/build_any_package.pl deb /opt/fastnetmon_libraries_bundle.tar.gz << pipeline.parameters.fastnetmon_build_version >> ubuntu << parameters.ubuntu_version >>
|
2022-04-03 22:21:12 +02:00
|
|
|
- store_artifacts:
|
|
|
|
path: /tmp/fastnetmon_<< pipeline.parameters.fastnetmon_build_version >>_amd64.deb
|
2022-04-21 20:32:41 +02:00
|
|
|
- run: s3cmd --disable-multipart --host=storage.googleapis.com --host-bucket="%(bucket).storage.googleapis.com" put /tmp/fastnetmon_<< pipeline.parameters.fastnetmon_build_version >>_amd64.deb s3://fastnetmon_community_packages/<< pipeline.parameters.fastnetmon_build_version >>/ubuntu/<< parameters.ubuntu_version >>/fastnetmon_<< pipeline.parameters.fastnetmon_build_version >>_amd64.deb
|
2022-02-09 15:27:32 +01:00
|
|
|
- run: cp src/fastnetmon.conf /etc/fastnetmon.conf
|
2022-02-09 15:27:33 +01:00
|
|
|
- run: ldd /opt/fastnetmon/fastnetmon
|
|
|
|
- run: ldd /opt/fastnetmon/fastnetmon_client
|
|
|
|
- run: ldd /opt/fastnetmon/fastnetmon_api_client
|
2022-02-09 15:27:32 +01:00
|
|
|
- run: /opt/fastnetmon/fastnetmon --configuration_check
|
2022-04-21 21:02:40 +02:00
|
|
|
build_debian:
|
2022-04-21 21:06:12 +02:00
|
|
|
parameters:
|
2022-04-21 21:02:40 +02:00
|
|
|
docker_image:
|
|
|
|
type: string
|
|
|
|
debian_version:
|
|
|
|
type: string
|
2022-04-03 22:21:12 +02:00
|
|
|
docker:
|
2022-04-21 21:02:40 +02:00
|
|
|
- image: << parameters.docker_image >>
|
2022-04-03 22:21:12 +02:00
|
|
|
resource_class: large
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- run: apt-get update; true
|
|
|
|
- run: apt-get install -y perl wget python3-pip
|
|
|
|
- run: pip3 install s3cmd
|
|
|
|
- run:
|
|
|
|
name: install_required_packages
|
|
|
|
no_output_timeout: 20m
|
|
|
|
command: perl src/fastnetmon_build.pl --install_dependency_packages_only
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- "{{ .Environment.CIRCLE_JOB }}_dependencies_31_10_2020"
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
|
|
|
- "{{ .Environment.CIRCLE_JOB }}_gcc_25_10_2020"
|
|
|
|
- run:
|
|
|
|
name: install_gcc
|
|
|
|
no_output_timeout: 120m
|
|
|
|
command: perl src/fastnetmon_build.pl --build_gcc_only
|
|
|
|
- save_cache:
|
|
|
|
key: "{{ .Environment.CIRCLE_JOB }}_gcc_25_10_2020"
|
|
|
|
paths:
|
|
|
|
- /opt/gcc930
|
|
|
|
- run:
|
|
|
|
name: install_dependencies
|
|
|
|
no_output_timeout: 180m
|
|
|
|
command: perl src/fastnetmon_build.pl --build_dependencies_only
|
|
|
|
- run:
|
|
|
|
name: collect_debug
|
|
|
|
command: cat /tmp/fastnetmon_install.log
|
|
|
|
when: on_fail
|
|
|
|
- save_cache:
|
|
|
|
key: "{{ .Environment.CIRCLE_JOB }}_dependencies_31_10_2020"
|
|
|
|
paths:
|
|
|
|
- /opt
|
|
|
|
- run: perl src/fastnetmon_build.pl --use-git-master --build_fastnetmon_only
|
|
|
|
- run: perl src/scripts/build_libary_bundle.pl /opt/fastnetmon_libraries_bundle.tar.gz
|
|
|
|
- store_artifacts:
|
|
|
|
path: /opt/fastnetmon_libraries_bundle.tar.gz
|
|
|
|
- store_artifacts:
|
|
|
|
path: /tmp/fastnetmon_install.log
|
2022-04-21 21:02:40 +02:00
|
|
|
- run: src/scripts/build_any_package.pl deb /opt/fastnetmon_libraries_bundle.tar.gz << pipeline.parameters.fastnetmon_build_version >> debian << parameters.debian_version >>
|
2022-04-03 22:21:12 +02:00
|
|
|
- store_artifacts:
|
|
|
|
path: /tmp/fastnetmon_<< pipeline.parameters.fastnetmon_build_version >>_amd64.deb
|
2022-04-21 21:02:40 +02:00
|
|
|
- run: s3cmd --disable-multipart --host=storage.googleapis.com --host-bucket="%(bucket).storage.googleapis.com" put /tmp/fastnetmon_<< pipeline.parameters.fastnetmon_build_version >>_amd64.deb s3://fastnetmon_community_packages/<< pipeline.parameters.fastnetmon_build_version >>/debian/<< parameters.debian_version >>/fastnetmon_<< pipeline.parameters.fastnetmon_build_version >>_amd64.deb
|
2022-04-03 22:21:12 +02:00
|
|
|
- run: cp src/fastnetmon.conf /etc/fastnetmon.conf
|
|
|
|
- run: ldd /opt/fastnetmon/fastnetmon
|
|
|
|
- run: ldd /opt/fastnetmon/fastnetmon_client
|
|
|
|
- run: ldd /opt/fastnetmon/fastnetmon_api_client
|
2022-04-21 21:36:09 +02:00
|
|
|
build_centos:
|
|
|
|
parameters:
|
|
|
|
docker_image:
|
|
|
|
type: string
|
|
|
|
centos_version:
|
|
|
|
type: string
|
2022-02-09 15:27:32 +01:00
|
|
|
docker:
|
2022-04-21 21:36:09 +02:00
|
|
|
- image: << parameters.docker_image >>
|
2022-04-02 20:36:03 +02:00
|
|
|
resource_class: large
|
2022-02-09 15:27:32 +01:00
|
|
|
steps:
|
|
|
|
- checkout
|
2022-03-13 16:18:21 +01:00
|
|
|
- run: yum install -y perl wget python3-pip perl-Archive-Tar
|
2022-02-09 15:27:32 +01:00
|
|
|
- run: pip3 install s3cmd
|
2022-02-09 15:27:32 +01:00
|
|
|
- run:
|
|
|
|
name: install_required_packages
|
|
|
|
no_output_timeout: 20m
|
2022-03-13 16:18:21 +01:00
|
|
|
command: perl src/fastnetmon_build.pl --install_dependency_packages_only
|
2022-02-09 15:27:32 +01:00
|
|
|
- restore_cache:
|
|
|
|
keys:
|
2022-03-13 22:45:05 +01:00
|
|
|
- "{{ .Environment.CIRCLE_JOB }}_dependencies_31_10_2020"
|
2022-03-13 16:18:21 +01:00
|
|
|
- restore_cache:
|
|
|
|
keys:
|
2022-03-13 22:45:05 +01:00
|
|
|
- "{{ .Environment.CIRCLE_JOB }}_gcc_25_10_2020"
|
2022-03-13 16:18:21 +01:00
|
|
|
- run:
|
|
|
|
name: install_gcc
|
2022-04-02 02:42:22 +02:00
|
|
|
no_output_timeout: 120m
|
2022-03-13 16:18:21 +01:00
|
|
|
command: perl src/fastnetmon_build.pl --build_gcc_only
|
|
|
|
- save_cache:
|
2022-03-13 22:45:05 +01:00
|
|
|
key: "{{ .Environment.CIRCLE_JOB }}_gcc_25_10_2020"
|
2022-03-13 16:18:21 +01:00
|
|
|
paths:
|
2022-03-13 22:45:05 +01:00
|
|
|
- /opt/gcc930
|
2022-02-09 15:27:32 +01:00
|
|
|
- run:
|
|
|
|
name: install_dependencies
|
2022-03-13 16:18:21 +01:00
|
|
|
no_output_timeout: 180m
|
2022-03-13 22:45:05 +01:00
|
|
|
command: perl src/fastnetmon_build.pl --build_dependencies_only
|
2022-02-09 15:27:32 +01:00
|
|
|
- run:
|
|
|
|
name: collect_debug
|
|
|
|
command: cat /tmp/fastnetmon_install.log
|
|
|
|
when: on_fail
|
|
|
|
- save_cache:
|
2022-03-13 22:45:05 +01:00
|
|
|
key: "{{ .Environment.CIRCLE_JOB }}_dependencies_31_10_2020"
|
2022-02-09 15:27:32 +01:00
|
|
|
paths:
|
|
|
|
- /opt
|
|
|
|
- /usr/include/linux/pf_ring.h
|
|
|
|
- store_artifacts:
|
|
|
|
path: /tmp/fastnetmon_install.log
|
2022-03-13 22:45:05 +01:00
|
|
|
- run: perl src/fastnetmon_build.pl --use-git-master --build_fastnetmon_only
|
2022-03-13 22:45:05 +01:00
|
|
|
- run: perl src/scripts/build_libary_bundle.pl /opt/fastnetmon_libraries_bundle.tar.gz
|
|
|
|
- store_artifacts:
|
|
|
|
path: /opt/fastnetmon_libraries_bundle.tar.gz
|
2022-04-21 21:36:09 +02:00
|
|
|
- run: src/scripts/build_any_package.pl rpm /opt/fastnetmon_libraries_bundle.tar.gz << pipeline.parameters.fastnetmon_build_version >> centos << parameters.centos_version >>
|
2022-02-09 15:27:32 +01:00
|
|
|
- store_artifacts:
|
2022-04-21 21:36:09 +02:00
|
|
|
path: /tmp/result_data/fastnetmon-<< pipeline.parameters.fastnetmon_build_version >>-1.el<< parameters.centos_version >>.x86_64.rpm
|
|
|
|
- run: s3cmd --disable-multipart --host=storage.googleapis.com --host-bucket="%(bucket).storage.googleapis.com" put /tmp/result_data/fastnetmon-<< pipeline.parameters.fastnetmon_build_version >>-1.el<< parameters.centos_version >>.x86_64.rpm s3://fastnetmon_community_packages/<< pipeline.parameters.fastnetmon_build_version >>/centos/<< parameters.centos_version >>/fastnetmon-<< pipeline.parameters.fastnetmon_build_version >>-1.el<< parameters.centos_version >>.x86_64.rpm
|
2022-02-09 15:27:32 +01:00
|
|
|
- run: cp src/fastnetmon.conf /etc/fastnetmon.conf
|
2022-02-09 15:27:33 +01:00
|
|
|
- run: ldd /opt/fastnetmon/fastnetmon
|
|
|
|
- run: ldd /opt/fastnetmon/fastnetmon_client
|
|
|
|
- run: ldd /opt/fastnetmon/fastnetmon_api_client
|
2022-02-09 15:27:32 +01:00
|
|
|
- run: /opt/fastnetmon/fastnetmon --configuration_check
|
2022-02-09 15:27:32 +01:00
|
|
|
workflows:
|
2022-02-09 15:27:32 +01:00
|
|
|
version: 2
|
|
|
|
all_distros:
|
2022-02-09 15:27:32 +01:00
|
|
|
jobs:
|
2022-04-21 21:36:58 +02:00
|
|
|
- build_centos:
|
2022-04-21 21:36:09 +02:00
|
|
|
docker_image: centos:centos7
|
2022-04-21 21:37:46 +02:00
|
|
|
centos_version: "7"
|
2022-04-21 21:36:09 +02:00
|
|
|
name: "centos7"
|
2022-04-21 21:36:58 +02:00
|
|
|
- build_centos:
|
2022-04-21 21:36:09 +02:00
|
|
|
docker_image: almalinux:8
|
2022-04-21 21:37:46 +02:00
|
|
|
centos_version: "8"
|
2022-04-21 21:36:09 +02:00
|
|
|
name: "centos8"
|
2022-04-21 20:32:41 +02:00
|
|
|
- build_ubuntu:
|
|
|
|
docker_image: "ubuntu:jammy"
|
|
|
|
ubuntu_version: "22.04"
|
|
|
|
name: "ubuntu2204"
|
|
|
|
- build_ubuntu:
|
|
|
|
docker_image: "ubuntu:focal"
|
|
|
|
ubuntu_version: "20.04"
|
|
|
|
name: "ubuntu2004"
|
|
|
|
- build_ubuntu:
|
|
|
|
docker_image: "ubuntu:bionic"
|
|
|
|
ubuntu_version: "18.04"
|
|
|
|
name: "ubuntu1804"
|
|
|
|
- build_ubuntu:
|
|
|
|
docker_image: "ubuntu:xenial"
|
|
|
|
ubuntu_version: "16.04"
|
|
|
|
name: "ubuntu1604"
|
|
|
|
- build_ubuntu:
|
|
|
|
docker_image: "ubuntu:trusty"
|
|
|
|
ubuntu_version: "14.04"
|
|
|
|
name: "ubuntu1404"
|
2022-04-21 21:02:40 +02:00
|
|
|
- build_debian:
|
|
|
|
docker_image: "debian:stretch"
|
2022-04-21 21:07:18 +02:00
|
|
|
debian_version: "9"
|
2022-04-21 21:02:40 +02:00
|
|
|
name: "debian9"
|
2022-04-21 21:07:18 +02:00
|
|
|
- build_debian:
|
2022-04-21 21:02:40 +02:00
|
|
|
docker_image: "debian:buster"
|
2022-04-21 21:07:18 +02:00
|
|
|
debian_version: "10"
|
2022-04-21 21:02:40 +02:00
|
|
|
name: "debian10"
|
2022-04-21 21:07:18 +02:00
|
|
|
- build_debian:
|
2022-04-21 21:02:40 +02:00
|
|
|
docker_image: "debian:bullseye"
|
2022-04-21 21:07:18 +02:00
|
|
|
debian_version: "11"
|
2022-04-21 21:02:40 +02:00
|
|
|
name: "debian11"
|
2022-04-21 22:03:17 +02:00
|
|
|
- build_docker
|
2022-04-29 21:38:47 +02:00
|
|
|
- build_debian_upstream_package
|