forked from e2guardian/e2guardian
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
193 lines (188 loc) · 11.1 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
stages:
- build:debian
- create-debian-package
- build:ubuntu
- create-ubuntu-package
- build:raspbian
- create-raspbian-package
Package Docker Image Debian:
stage: build:debian
artifacts:
expire_in: 1 hour
name: build-debian
paths:
- /builds
image: amd64/debian:stable
variables:
OS: "debian"
script:
- apt update
- apt-get -y upgrade
- apt install --no-install-recommends --no-install-suggests -y curl unzip base-files automake base-passwd
bash coreutils dash debianutils diffutils dpkg e2fsprogs findutils grep gzip hostname ncurses-base
libevent-pthreads-* libevent-dev ncurses-bin perl-base sed login sysvinit-utils tar bsdutils
mount util-linux libc6-dev libc-dev gcc g++ make dpkg-dev autotools-dev debhelper dh-autoreconf dpatch
libclamav-dev libpcre3-dev zlib1g-dev pkg-config libssl-dev libssl1.1 git ca-certificates lsb-release
- cd /builds/fredbcode/e2guardian && ./autogen.sh && ./configure '--prefix=/usr' '--enable-clamd=yes' '--with-proxyuser=e2guardian' '--with-proxygroup=e2guardian' '--sysconfdir=/etc' '--localstatedir=/var' '--enable-icap=yes' '--enable-commandline=yes' '--enable-email=yes' '--enable-ntlm=yes' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--enable-pcre=yes' '--enable-sslmitm=yes' 'CPPFLAGS=-mno-sse2 -g -O2'
- make
- rm -rf .git
Create Debian Package:
stage: create-debian-package
image: amd64/debian:stable
variables:
PACKPATH: "/builds/fredbcode/e2guardian"
PACKDST: "/builds/fredbcode/e2guardian/scripts/debian_package/e2debian_package"
OS: "debian"
script:
- cd /builds/fredbcode/e2guardian
- apt update && apt install --no-install-recommends --no-install-suggests -y curl git ca-certificates lsb-release util-linux binutils
- git clone https://github.com/fredbcode/scripts
- cp ${PACKPATH}/src/e2guardian ${PACKDST}/data/usr/sbin/e2guardian
- cp -Rf ${PACKPATH}/configs ${PACKDST}/data/etc/e2guardian/
- mkdir -p ${PACKPATH}/share/e2guardian/languages
- cp -Rf ${PACKPATH}/data/languages ${PACKDST}/data/usr/share/e2guardian/
- cp ${PACKPATH}/data/*.gif ${PACKDST}/data/usr/share/e2guardian/
- cp ${PACKPATH}/data/*swf ${PACKDST}/data/usr/share/e2guardian/
- cp ${PACKPATH}/data/scripts/e2guardian.service ${PACKDST}/data/lib/systemd/system
- find ${PACKDST}/ -type f -name "Makefil*" -delete
- find ${PACKDST}/ -type f -name "*.in" -delete
- SIZE=`stat -c %s ${PACKDST}/data` && echo $SIZE && sed -i "s/Installed-Size:.*$/Installed-Size:\ $SIZE/g" ${PACKDST}/control/control
- VFULL=`${PACKDST}/data/usr/sbin/e2guardian -v | sed -n 1p | cut -d ' ' -f 2` && sed -i "s/Version:.*$/Version:\ $VFULL/g" ${PACKDST}/control/control
- cd ${PACKDST} && cd .. && ./rebuild.sh e2"$OS"_package
- git clone -b packages --single-branch https://gitlab.com/fredbcode/e2guardian.git gitpackages
- mkdir -p gitpackages/${CI_COMMIT_REF_NAME}
- mv e2"$OS"_package.deb gitpackages/${CI_COMMIT_REF_NAME}/e2"$OS"_V"$VFULL"_$(date +%Y%m%d).deb
- cd gitpackages/${CI_COMMIT_REF_NAME}
- git add *.deb
- git config --global user.name "${GITLAB_USER_NAME}"
- git config --global user.email "${GITLAB_USER_EMAIL}"
- git commit -m "Commit "$OS" ${CI_COMMIT_REF_NAME} Package"
- git push https://${YOUR_USERNAME}:${PERSONAL_ACCESS_TOKEN}@gitlab.com/fredbcode/e2guardian.git HEAD:packages
- rm -rf *
Package Docker Image Ubuntu:
stage: build:ubuntu
artifacts:
expire_in: 1 hour
name: build-ubuntu
paths:
- /builds
image: amd64/ubuntu:18.04
script:
- apt update
- apt-get -y upgrade
- apt install --no-install-recommends --no-install-suggests -y curl unzip base-files automake base-passwd
bash coreutils dash debianutils diffutils dpkg e2fsprogs findutils grep gzip hostname ncurses-base
libevent-pthreads-* libevent-dev ncurses-bin perl-base sed login sysvinit-utils tar bsdutils
mount util-linux libc6-dev libc-dev gcc g++ make dpkg-dev autotools-dev debhelper dh-autoreconf dpatch
libclamav-dev libpcre3-dev zlib1g-dev pkg-config libssl-dev libssl1.1 git ca-certificates lsb-release
- cd /builds/fredbcode/e2guardian && ./autogen.sh && ./configure '--prefix=/usr' '--enable-clamd=yes' '--with-proxyuser=e2guardian' '--with-proxygroup=e2guardian' '--sysconfdir=/etc' '--localstatedir=/var' '--enable-icap=yes' '--enable-commandline=yes' '--enable-email=yes' '--enable-ntlm=yes' '--mandir=${prefix}/share/man' '--infodir=${prefix}/share/info' '--enable-pcre=yes' '--enable-sslmitm=yes' 'CPPFLAGS=-mno-sse2 -g -O2'
- make
- rm -rf .git
Create Ubuntu Package:
stage: create-ubuntu-package
image: amd64/ubuntu:18.04
variables:
PACKPATH: "/builds/fredbcode/e2guardian"
PACKDST: "/builds/fredbcode/e2guardian/scripts/debian_package/e2ubuntu_package"
OS: "ubuntu"
script:
- cd /builds/fredbcode/e2guardian
- apt update && apt install --no-install-recommends --no-install-suggests -y curl git ca-certificates lsb-release util-linux binutils
- git clone https://github.com/fredbcode/scripts
- cp ${PACKPATH}/src/e2guardian ${PACKDST}/data/usr/sbin/e2guardian
- cp -Rf ${PACKPATH}/configs ${PACKDST}/data/etc/e2guardian/
- mkdir -p ${PACKPATH}/share/e2guardian/languages
- cp -Rf ${PACKPATH}/data/languages ${PACKDST}/data/usr/share/e2guardian/
- cp ${PACKPATH}/data/*.gif ${PACKDST}/data/usr/share/e2guardian/
- cp ${PACKPATH}/data/*swf ${PACKDST}/data/usr/share/e2guardian/
- cp ${PACKPATH}/data/scripts/e2guardian.service ${PACKDST}/data/lib/systemd/system
- find ${PACKDST}/ -type f -name "Makefil*" -delete
- find ${PACKDST}/ -type f -name "*.in" -delete
- SIZE=`stat -c %s ${PACKDST}/data` && echo $SIZE && sed -i "s/Installed-Size:.*$/Installed-Size:\ $SIZE/g" ${PACKDST}/control/control
- VFULL=`${PACKDST}/data/usr/sbin/e2guardian -v | sed -n 1p | cut -d ' ' -f 2` && sed -i "s/Version:.*$/Version:\ $VFULL/g" ${PACKDST}/control/control
- cd ${PACKDST} && cd .. && ./rebuild.sh e2"$OS"_package
- git clone -b packages --single-branch https://gitlab.com/fredbcode/e2guardian.git gitpackages
- mkdir -p gitpackages/${CI_COMMIT_REF_NAME}
- mv e2"$OS"_package.deb gitpackages/${CI_COMMIT_REF_NAME}/e2"$OS"_V"$VFULL"_$(date +%Y%m%d).deb
- cd gitpackages/${CI_COMMIT_REF_NAME}
- git add *.deb
- git config --global user.name "${GITLAB_USER_NAME}"
- git config --global user.email "${GITLAB_USER_EMAIL}"
- git commit -m "Commit "$OS" ${CI_COMMIT_REF_NAME} Package"
- git push https://${YOUR_USERNAME}:${PERSONAL_ACCESS_TOKEN}@gitlab.com/fredbcode/e2guardian.git HEAD:packages
- rm -rf *
# TODO: CONFIGURE configure --host=arm works only on real machine ?
#
#Package Docker Image Raspbian:
# stage: build:raspbian
# artifacts:
# expire_in: 1 hour
# name: build-raspbian
# paths:
# - /builds
# image: amd64/debian:stable
# variables:
# OS: "rasbian"
# script:
# - echo "deb-src http://deb.debian.org/debian stretch main" >> /etc/apt/sources.list
# - echo "deb-src http://deb.debian.org/debian-security/ stretch/updates main" >> /etc/apt/sources.list
# - echo "deb-src http://deb.debian.org/debian stretch-updates main" >> /etc/apt/sources.list
# - apt update
# - apt-get -y upgrade
# - apt install --no-install-recommends --no-install-suggests -y curl unzip base-files automake base-passwd
# bash coreutils dash debianutils diffutils dpkg e2fsprogs findutils grep gzip hostname ncurses-base
# libevent-pthreads-* libevent-dev ncurses-bin perl-base sed login sysvinit-utils tar bsdutils
# mount util-linux libc6-dev libc-dev gcc g++ make dpkg-dev autotools-dev debhelper dh-autoreconf dpatch
# libclamav-dev libpcre3-dev zlib1g-dev pkg-config libssl-dev libssl1.1 git ca-certificates lsb-release gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
# - dpkg --add-architecture armhf
# - apt-get update
# - apt-get install -y build-essential crossbuild-essential-armhf
# - apt-get build-dep -y -aarmhf e2guardian
# - git clone https://github.com/raspberrypi/tools.git --depth 1 /tmp/tools
# - export ARCH=arm
# - export CROSS_COMPILE=arm-bcm2708hardfp-linux-gnueabi-
# - export CC=/tmp/tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi-gcc
# - export NM=/tmp/tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi-nm
# - export LD=/tmp/tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi-ld
# - export CXX=/tmp/tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi-g++
# - export RANLIB=/tmp/tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi-ranlib
# - export AR=/tmp/tools/arm-bcm2708/arm-bcm2708hardfp-linux-gnueabi/bin/arm-bcm2708hardfp-linux-gnueabi-ar
# - cd /builds/fredbcode/e2guardian
# - ./autogen.sh
# - export
# - ./configure --host=arm --prefix=/usr --enable-clamd=yes --with-proxyuser=e2guardian --with-proxygroup=e2guardian --sysconfdir=/etc --localstatedir=/var --enable-icap=yes --enable-commandline=yes --enable-email=yes --enable-ntlm=yes --enable-pcre=yes --enable-sslmitm=yes
# - make ARCH=arm CROSS_COMPIL=arm-linux-gnueabi-
# - rm -rf .git
#
##Create Raspbian Package:
# stage: create-raspbian-package
# image: amd64/debian:stable
# variables:
# PACKPATH: "/builds/fredbcode/e2guardian"
# PACKDST: "/builds/fredbcode/e2guardian/scripts/debian_package/e2raspbian_package"
# OS: "raspbian"
# script:
# - cd /builds/fredbcode/e2guardian
# - apt update && apt install --no-install-recommends --no-install-suggests -y curl git ca-certificates lsb-release util-linux binutils
# - git clone https://github.com/fredbcode/scripts
# - cp ${PACKPATH}/src/e2guardian ${PACKDST}/data/usr/sbin/e2guardian
# - cp -Rf ${PACKPATH}/configs ${PACKDST}/data/etc/e2guardian/
# - mkdir -p ${PACKPATH}/share/e2guardian/languages
# - cp -Rf ${PACKPATH}/data/languages ${PACKDST}/data/usr/share/e2guardian/
# - cp ${PACKPATH}/data/*.gif ${PACKDST}/data/usr/share/e2guardian/
# - cp ${PACKPATH}/data/*swf ${PACKDST}/data/usr/share/e2guardian/
# - find ${PACKDST}/ -type f -name "Makefil*" -delete
# - find ${PACKDST}/ -type f -name "*.in" -delete
# - SIZE=`stat -c %s ${PACKDST}/data` && echo $SIZE && sed -i "s/Installed-Size:.*$/Installed-Size:\ $SIZE/g" ${PACKDST}/control/control
# - sed -i "s/Version:.*$/Version:\ ${CI_COMMIT_REF_NAME}/g" ${PACKDST}/control/control
# - cd ${PACKDST} && cd .. && ./rebuild.sh e2"$OS"_package
# - git clone -b packages --single-branch https://gitlab.com/fredbcode/e2guardian.git gitpackages
# - mkdir -p gitpackages/${CI_COMMIT_REF_NAME}
# - mv e2"$OS"_package.deb gitpackages/${CI_COMMIT_REF_NAME}/e2"$OS"_${CI_COMMIT_REF_NAME}_$(date +%Y%m%d).deb
# - cd gitpackages/${CI_COMMIT_REF_NAME}
# - git add *.deb
# - git config --global user.name "${GITLAB_USER_NAME}"
# - git config --global user.email "${GITLAB_USER_EMAIL}"
# - git commit -m "Commit "$OS" ${CI_COMMIT_REF_NAME} Package"
# - git push https://${YOUR_USERNAME}:${PERSONAL_ACCESS_TOKEN}@gitlab.com/fredbcode/e2guardian.git HEAD:packages
# - rm -rf *