Skip to content

Commit

Permalink
Build using gitlab
Browse files Browse the repository at this point in the history
We used to build using buildbot. Start a migration towards gitlab.

(yes, this is a squashed merge...)
  • Loading branch information
yoe committed Jan 22, 2021
1 parent 1548cce commit f345ba2
Show file tree
Hide file tree
Showing 31 changed files with 2,847 additions and 21 deletions.
29 changes: 29 additions & 0 deletions .ci/build-configs.yml
@@ -0,0 +1,29 @@
---
variables:
DEBIAN_OLDSTABLE_CODE: stretch
DEBIAN_OLDSTABLE_VERSION: 9
DEBIAN_OLDSTABLE_FULL: Debian 9 "stretch"
DEBIAN_STABLE_CODE: buster
DEBIAN_STABLE_VERSION: 10
DEBIAN_STABLE_FULL: Debian 10 "buster"
UBUNTU_OLDLTS_CODE: bionic
UBUNTU_OLDLTS_VERSION: 1804
UBUNTU_OLDLTS_FULL: Ubuntu 18.04 "Bionic Beaver"
MINT_OLDLTS_CODE: tara
MINT_OLDLTS_VERSION: 19
MINT_OLDLTS_FULL: Linux Mint 20
UBUNTU_LTS_CODE: focal
UBUNTU_LTS_VERSION: 2004
UBUNTU_LTS_FULL: Ubuntu 20.04 "Focal Fossa"
MINT_LTS_CODE: ulyana
MINT_LTS_VERSION: 20
MINT_LTS_FULL: Linux Mint 20
UBUNTU_STABLE_CODE: groovy
UBUNTU_STABLE_VERSION: 2010
UBUNTU_STABLE_FULL: Ubuntu 20.10 "Groovy Gorilla"
FEDORA_OLDSTABLE_VERSION: 32
FEDORA_STABLE_VERSION: 33
CENTOS_OLDSTABLE_VERSION: 7
CENTOS_STABLE_VERSION: 8
OPENSUSE_OLDSTABLE_VERSION: "15.1"
OPENSUSE_STABLE_VERSION: "15.2"
20 changes: 20 additions & 0 deletions .ci/builds-docker.yml
@@ -0,0 +1,20 @@
---
.docker-base:
retry: 1
stage: docker
image: docker:stable
tags:
- dind
services:
- docker:dind
variables:
IMAGE_TAG: $CI_REGISTRY_IMAGE/$CI_JOB_NAME:$CI_COMMIT_REF_SLUG
before_script:
- docker info
- docker pull $IMAGE_TAG || true
script:
- cd $LINUX_BASEDIR/.ci/dockerfiles/$CI_JOB_NAME
- docker build --pull --cache-from $IMAGE_TAG -t $IMAGE_TAG .
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker push $IMAGE_TAG

263 changes: 263 additions & 0 deletions .ci/builds-linux.yml
@@ -0,0 +1,263 @@
.distcheck:
tags:
- docker
image: $CI_REGISTRY_IMAGE/deb-build:$CI_COMMIT_REF_SLUG
before_script:
- if [ ! -z "$ACNG" ]; then sed -i -e "s,http://,$ACNG/," /etc/apt/sources.list; else echo "no proxy configured"; fi
- apt-get update
- apt-get -y install --no-install-recommends autoconf autoconf-archive automake libtool libpcsclite-dev libp11-kit-dev libgtk-3-dev libassuan-dev libgpg-error-dev libssl-dev libxml2-dev libcurl4-openssl-dev libproxy-dev plantuml zip gettext build-essential g++ git graphviz
- pushd $LINUX_BASEDIR
- autoreconf -f -i
- popd
- rm -rf products
- rm -rf $LINUX_BASEDIR/eid-mw-*.tar.gz $LINUX_BASEDIR/eid-mw-*.zip
script:
- pushd $LINUX_BASEDIR
- ./configure
- make -j $(nproc) distcheck
- popd
after_script:
- mkdir -p products/source
- cp $LINUX_BASEDIR/eid-mw-*.tar.gz $LINUX_BASEDIR/eid-mw-*.zip products/source/
- cp $LINUX_BASEDIR/.version products/source/version
- cp $LINUX_BASEDIR/scripts/build-aux/deb-cl.pl products/source/
- pushd $LINUX_BASEDIR
- COMMIT_DATE=$(git log --date=rfc HEAD^..HEAD|grep ^Date|cut -d ' ' -f 2-|sed -e 's/^\s*//')
- popd
- echo $COMMIT_DATE > products/source/date
artifacts:
when:
on_success
paths:
- products/source

.gtk4:
tags:
- docker
image: $CI_REGISTRY_IMAGE/gtk4-build:$CI_COMMIT_REF_SLUG
before_script:
- pushd $LINUX_BASEDIR
- autoreconf -f -i
- popd
script:
- pushd $LINUX_BASEDIR
- ./configure --with-gtkvers=4 --disable-pinentry
- make -j $(nproc) distcheck
- popd
allow_failure: true

.robot:linux:
variables:
EID_ROBOT_STYLE: zetes:/dev/CARD:/dev/USB
EID_DIALOGS_STYLE: nopin
dependencies: []
tags:
- robot
- linux
before_script:
- pushd $LINUX_BASEDIR
- autoreconf -f -i
- popd
script:
- pushd $LINUX_BASEDIR
- ./configure --libexecdir=$(pwd)/scripts/linux/hackbin --disable-pinentry
- make -j $(nproc) check
- popd
allow_failure: true

.validation:linux:firefox:
tags:
- robot
- linux
before_script:
- killall Xvfb || true
script:
- xvfb-run actiona -e -x $CI_PROJECT_DIR/tests/browsertests/firefoxTest.ascr

.validation:linux:google:
tags:
- robot
- linux
before_script:
- killall Xvfb || true
script:
- xvfb-run actiona -e -x $CI_PROJECT_DIR/tests/browsertests/googleTest.ascr

.repro:debian:
tags:
- docker
image: $CI_REGISTRY_IMAGE/deb-repro:$CI_COMMIT_REF_SLUG
dependencies: []
before_script:
- if [ ! -z "$ACNG" ]; then sed -i -e "s,http://,$ACNG/," /etc/apt/sources.list; else echo "no proxy configured"; fi
- apt-get update
- apt-get -y install reprotest diffoscope equivs devscripts faketime disorderfs sudo
- mk-build-deps -r -i -t "apt-get -y -o Debug::pkgProblemResolver=yes --no-install-recommends"
- autoreconf -f -i
- pushd $LINUX_BASEDIR
- ./configure
- make dist
- popd
script:
- reprotest $LINUX_BASEDIR
artifacts:
when: on_failure
paths:
- configure

.scan-build:
tags:
- docker
image: $CI_REGISTRY_IMAGE/deb-scan-build:$CI_COMMIT_REF_SLUG
before_script:
- if [ ! -z "$ACNG" ]; then sed -i -e "s,http://,$ACNG/," /etc/apt/sources.list; else echo "no proxy configured"; fi
- apt-get update
- apt-get -y install --no-install-recommends clang-tools autoconf autoconf-archive automake libtool libassuan-dev libgpg-error-dev libpcsclite-dev libp11-kit-dev libgtk-3-dev libssl-dev libxml2-dev libcurl4-openssl-dev libproxy-dev plantuml zip gettext build-essential git g++ graphviz curl
- pushd $LINUX_BASEDIR
- autoreconf -f -i
- ./configure
- popd
script:
- pushd $LINUX_BASEDIR
- scan-build -disable-checker deadcode.DeadStores --status-bugs -o public make -j $(nproc)
- popd
artifacts:
when: on_failure
paths:
- public

.srpm:
variables:
GIT_STRATEGY: none
tags:
- docker
image: $CI_REGISTRY_IMAGE/fed-build:$CI_COMMIT_REF_SLUG
before_script:
- dnf -y install rpm-build git rpmdevtools
- rpmdev-setuptree
- VER=$(cat products/source/version)
- VERSHORT=${VER#*-}
- mv products/source/eid-mw-$VER.tar.gz $HOME/rpmbuild/SOURCES/
- tar --extract --file=$HOME/rpmbuild/SOURCES/eid-mw-$VER.tar.gz -C $HOME/rpmbuild/SPECS/ --strip-components=2 eid-mw-$VER/rpm/eid-mw.spec
- tar --extract --file=$HOME/rpmbuild/SOURCES/eid-mw-$VER.tar.gz -C $HOME/rpmbuild/SOURCES/ --strip-components=2 eid-mw-$VER/rpm/baselibs.conf
script:
- rpmbuild --define "revision $VERSHORT" -bs $HOME/rpmbuild/SPECS/eid-mw.spec
after_script:
- VER=$(cat products/source/version)
- VERSHORT=${VER#*-}
- VERFULL=${VER%-*}-0.$VERSHORT
- mkdir -p products/srpm/
- cp $HOME/rpmbuild/SRPMS/eid-mw-$VERFULL.*.src.rpm products/srpm/
- cp products/source/version products/srpm/
artifacts:
paths:
- products/srpm

.build-deb-base:
before_script:
- VER=$(cat products/source/version)
- VERSHORT=${VER#*-}
- COMMITDATE=$(cat products/source/date)
- mkdir -p build
- cd build && tar xvf ../products/source/eid-mw-${VER}.tar.gz --strip-components=1
- setup-chroot.sh $CODE $ARCH $DIST
- if [ $CANDIDATEBRANCH = $CI_COMMIT_REF_NAME ]; then TARGET=candidate; fi
- if [ ! -z "$CI_COMMIT_TAG" ]; then TARGET=candidate; fi
- if [ $ARCH = "i386" ]; then DASHA="-A -s"; else DASHA="--no-arch-all --no-source"; fi
- export DASHA
- if [ ! -z "$TARGET" ]; then dist="$TARGET-$CODE"; else dist=$CODE; fi
- ../products/source/deb-cl.pl debian/changelog "$COMMITDATE" "$VER"
script:
- sbuild -n $DASHA -d $dist -c $CODE-$ARCH-sbuild --arch=$ARCH
after_script:
- mkdir -p products/deb/
- dcmd cp *ges products/deb/
artifacts:
paths:
- products/deb
when:
on_success
tags:
- docker
image: $CI_REGISTRY_IMAGE/deb-sbuild:$CI_COMMIT_REF_SLUG

.build-fed-base:
retry: 2
tags:
- docker
image: $CI_REGISTRY_IMAGE/fed-build:$CI_COMMIT_REF_SLUG
before_script:
- dnf -y install mock git
- VER=$(cat products/srpm/version)
- VERSHORT=${VER#*-}
- mkdir -p products/$DIST-$DVER-$ARCH
script:
- mock --dnf --old-chroot --verbose -r $DIST-$DVER-$ARCH --rebuild products/srpm/eid-mw-*.src.rpm --resultdir $CI_PROJECT_DIR/products/$DIST-$DVER-$ARCH --define "revision $VERSHORT"
artifacts:
paths:
- products/$DIST-$DVER-$ARCH
when:
on_success

.build-suse-base:
dependencies:
- src:srpm
stage: binary-package
retry: 2
tags:
- docker
image: $CI_REGISTRY_IMAGE/suse-build:$CI_COMMIT_REF_SLUG
before_script:
- pushd $LINUX_BASEDIR
- VERSHORT=$(git describe --dirty | sed -e 's/-/./g')
- popd
script:
- http_proxy="$ACNG" build --no-checks --clean -debug --dist sl$DVER --repo http://download.opensuse.org/distribution/leap/$DVER/repo/oss --define "revision $VERSHORT" products/srpm/eid-mw-*.src.rpm
after_script:
- mkdir -p products/$DIST-$DVER-$ARCH
- mv /var/tmp/build-root/home/abuild/rpmbuild/RPMS/*/*rpm products/$DIST-$DVER-$ARCH/
artifacts:
paths:
- products/$DIST-$DVER-$ARCH
when:
on_success

.inject-debs:
tags:
- repobuilder
before_script:
- $LINUX_BASEDIR/scripts/build-aux/ensure-reprepro-config
- dcmd cp products/deb/*ges $REPREPRO_BASE_DIR/incoming
script:
- reprepro processincoming incoming
after_script:
- rm -f $REPREPRO_BASE_DIR/incoming/*

.inject-fed:
tags:
- repobuilder
script:
- if [ $CANDIDATEBRANCH = $CI_COMMIT_REF_NAME ]; then TARGET=candidate; fi
- if [ ! -z "$CI_COMMIT_TAG" ]; then TARGET=candidate; fi
- bash -x $LINUX_BASEDIR/scripts/build-aux/fed-rel.sh

.inject-suse:
tags:
- repobuilder
script:
- if [ $CANDIDATEBRANCH = $CI_COMMIT_REF_NAME ]; then TARGET=candidate; fi
- if [ ! -z "$CI_COMMIT_TAG" ]; then TARGET=candidate; fi
- bash -x $LINUX_BASEDIR/scripts/build-aux/suse-rel.sh

.inject-source:
tags:
- repobuilder
script:
- VER=$(cat products/source/version)
- SOURCETGZ=products/source/eid-mw-${VER}.tar.gz
- SOURCEZIP=products/source/eid-mw-${VER}.zip
- cp $SOURCETGZ $SOURCEZIP /srv/dist/eid-mw/continuous/sources/
- cd /srv/dist/eid-mw/continuous/sources
- gpg --yes --batch --passphrase "" --default-key $GPG_TEST_KEY_ID --no-tty -b --armor $(basename $SOURCETGZ)
variables:
GIT_STRATEGY: none
45 changes: 45 additions & 0 deletions .ci/builds-macos.yml
@@ -0,0 +1,45 @@
.robot:macos:
variables:
EID_ROBOT_STYLE: $EID_ROBOT_STYLE_MACOS
EID_DIALOGS_STYLE: nopin
EIDMW_SIGN_BUILD: 0
tags:
- robot
- macos
before_script:
- pushd $MACOS_BASEDIR
- pushd scripts/mac
- ./make-mac.sh
- popd
- xcodebuild -project beidmw.xcodeproj -target testsuite -configuration Release
- popd
script:
- pushd $MACOS_BASEDIR/Release
- export DYLD_LIBRARY_PATH=$(pwd)
- ./testsuite
- popd
allow_failure: true

.build-macos:
variables:
EIDMW_SIGN_BUILD: 0
dependencies: []
script:
- export EIDMW_CODESIGN_IDENTITY_APP=${EIDMW_CODESIGN_IDENTITY_APP:-$EIDMW_CODESIGN_IDENTITY_APP_${CI_RUNNER_SHORT_TOKEN}}
- export EIDMW_CODESIGN_IDENTITY_INST=${EIDMW_CODESIGN_IDENTITY_INST:-$EIDMW_CODESIGN_IDENTITY_INST_${CI_RUNNER_SHORT_TOKEN}}
- echo $EIDMW_CODESIGN_IDENTITY_APP
- echo $EIDMW_CODESIGN_IDENTITY_INST
- cd $MACOS_BASEDIR/scripts/mac
- ./make-mac.sh
- ./make-viewer.sh
after_script:
- sudo chown -R $USER $MACOS_BASEDIR/installers/eid-mw/mac/release || true
tags:
- macos
- build
allow_failure: true
artifacts:
when: on_success
paths:
- $MACOS_BASEDIR/scripts/mac/*dmg
- $MACOS_BASEDIR/installers/eid-mw/mac/release/*
38 changes: 38 additions & 0 deletions .ci/builds-windows.yml
@@ -0,0 +1,38 @@
---
.robot:windows:
tags:
- robot
- windows
script:
- cd %WINDOWS_BASEDIR%\scripts\windows
- call build_testsuite.bat
- cd
- cd ..\..
- cd tests\unit\windows\Release
- pkcs11_tests.exe zetes:COM4:COM3 nopin
allow_failure: true

.build-windows:
dependencies: []
before_script:
- del /q %WINDOWS_BASEDIR%\scripts\windows\*.exe
script:
- cd %WINDOWS_BASEDIR%\scripts\windows
- build_all.bat
after_script:
- rmdir /s /q products
- mkdir products\windows
- xcopy %WINDOWS_BASEDIR%\scripts\windows\*.exe products\windows
- xcopy %WINDOWS_BASEDIR%\scripts\windows\*.msi products\windows
tags:
- build
- windows
allow_failure: true
artifacts:
when: on_success
paths:
- products\windows
- cardcomm\minidriver\VS_2017\Binaries\*\*.lib
- cardcomm\pkcs11\VS_2017\Binaries\*\*.lib
- installers\quickinstaller\NSIS_Plugins\beidread\VS_2017\*\*.lib
- plugins_tools\eid-viewer\Windows\VS_2017\eIDViewer\bin\*\*.lib

0 comments on commit f345ba2

Please sign in to comment.