diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c1533360530ecbec6ea14b4e736dd72099f4b0d1..a543c4a10449546605a5029dba302e68e20c16ce 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,64 +1,141 @@ --- stages: - - lint - - build +# - lint +# - build - package -build_test: - image: registry.0xacab.org/jkito/bitmask-vpn:latest - stage: build +#build_test: +# image: registry.0xacab.org/jkito/bitmask-vpn:latest +# stage: build +# script: +# - make test +# - patch -p1 < docker/*.patch +# # TODO missing xcb package in the docker image. investigate what to install to run minimal tests. +# # - make test_ui +# - PROVIDER=bitmask make vendor && make build +# tags: +# - linux +# artifacts: +# paths: +# - 'build/qt/release' +# expire_in: 1 week +# +#lint: +# image: golangci/golangci-lint:v1.59-alpine +# stage: build +# script: +# - golangci-lint run --timeout=5m +# tags: +# - linux +# +#debian: +# image: registry.0xacab.org/jkito/bitmask-vpn:latest +# stage: package +# tags: +# - linux +# script: +# - 'PROVIDER="bitmask" make vendor && make package_deb' +# artifacts: +# paths: +# - 'deploy/*.deb' +# expire_in: 1 week +# +#arch: +# image: archlinux +# stage: package +# before_script: +# - "pacman -Suy base-devel --noconfirm" +# - "useradd non_root" +# - "echo 'non_root ALL=NOPASSWD: ALL' >> /etc/sudoers" +# - "mkdir /home/non_root" +# - "cp -r Makefile ArchLinux/ /home/non_root" +# - "chown -R non_root:non_root /home/non_root" +# script: +# # makepkg does not run as root, but it needs sudo to install dependencies +# - "cd /home/non_root && sudo -u non_root make package_arch" +# - "cd /home/non_root && pacman -U ArchLinux/*tar.zst --noconfirm" +# # artifacts must be relative to the working directory (e.g. /builds/leap/bitmask-vpn) +# - "cp /home/non_root/ArchLinux/*.tar.zst $CI_PROJECT_DIR" +# artifacts: +# paths: +# - '*.tar.zst' +# expire_in: 1 week +# tags: +# - linux + +build_debian12_package: + stage: package + # we use backports because we need go1.22 + image: debian:bookworm-backports + before_script: + - "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -q -y make sudo" + - "make depends" + - "DEBIAN_FRONTEND=noninteractive apt-get install -y -q golang-go" + #- "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q debhelper-compat golang make pkg-config g++ git libqt6svg6-dev qt6-tools-dev qt6-tools-dev-tools qt6-base-dev libqt6qml6 qt6-declarative-dev dh-golang libgl-dev qt6-declarative-dev-tools qt6-l10n-tools" + #- "DEBIAN_FRONTEND=noninteractive apt-get install -y -q devscripts" + #- "DEBIAN_FRONTEND=noninteractive apt-get install -y -q golang-1.22" + #- "update-alternatives --install /usr/bin/go go /usr/lib/go-1.22/bin/go 0" + - 'ln -s $(qmake6 -query "QT_INSTALL_BINS")/lrelease /usr/local/bin/lrelease' script: - - make test - - patch -p1 < docker/*.patch - # TODO missing xcb package in the docker image. investigate what to install to run minimal tests. - # - make test_ui - - PROVIDER=bitmask make vendor && make build - tags: - - linux + - "PROVIDER=bitmask make vendor" + - "PROVIDER=bitmask QMAKE=qmake6 make package_deb" + - "make clean" + - "PROVIDER=riseup make vendor" + - "PROVIDER=riseup QMAKE=qmake6 make package_deb" artifacts: paths: - - 'build/qt/release' + - 'deploy/*' + - 'build/*' expire_in: 1 week - -lint: - image: golangci/golangci-lint:v1.59-alpine - stage: build - script: - - golangci-lint run --timeout=5m tags: - linux -debian: - image: registry.0xacab.org/jkito/bitmask-vpn:latest +build_ubuntu22_package: stage: package - tags: - - linux + image: ubuntu:22.04 + before_script: + - "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -q -y software-properties-common make sudo" + - "add-apt-repository ppa:longsleep/golang-backports -y" + - "DEBIAN_FRONTEND=noninteractive apt-get install -y -q golang-go" + - "make depends" + #- "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q debhelper-compat golang make pkg-config g++ git libqt6svg6-dev qt6-tools-dev qt6-tools-dev-tools qt6-base-dev libqt6qml6 qt6-declarative-dev dh-golang libgl-dev qt6-declarative-dev-tools qt6-l10n-tools" + #- "DEBIAN_FRONTEND=noninteractive apt-get install -y -q devscripts" + #- "DEBIAN_FRONTEND=noninteractive apt-get install -y -q golang-1.22" + #- "update-alternatives --install /usr/bin/go go /usr/lib/go-1.22/bin/go 0" + - 'ln -s $(qmake6 -query "QT_INSTALL_BINS")/lrelease /usr/local/bin/lrelease' script: - - 'PROVIDER="bitmask" make vendor && make package_deb' + - "PROVIDER=bitmask make vendor" + - "PROVIDER=bitmask QMAKE=qmake6 make package_deb" + - "make clean" + - "PROVIDER=riseup make vendor" + - "PROVIDER=riseup QMAKE=qmake6 make package_deb" artifacts: paths: - - 'deploy/*.deb' + - 'deploy/*' + - 'build/*' expire_in: 1 week + tags: + - linux -arch: - image: archlinux +build_ubuntu24_package: stage: package + image: ubuntu:24.04 before_script: - - "pacman -Suy base-devel --noconfirm" - - "useradd non_root" - - "echo 'non_root ALL=NOPASSWD: ALL' >> /etc/sudoers" - - "mkdir /home/non_root" - - "cp -r Makefile ArchLinux/ /home/non_root" - - "chown -R non_root:non_root /home/non_root" + #- "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y -q debhelper-compat golang make pkg-config g++ git libqt6svg6-dev qt6-tools-dev qt6-tools-dev-tools qt6-base-dev libqt6qml6 qt6-declarative-dev dh-golang libgl-dev qt6-declarative-dev-tools qt6-l10n-tools" + #- "DEBIAN_FRONTEND=noninteractive apt-get install -y -q devscripts" + - "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -q -y make sudo" + - "make depends" + - 'ln -s $(qmake6 -query "QT_INSTALL_BINS")/lrelease /usr/local/bin/lrelease' script: - # makepkg does not run as root, but it needs sudo to install dependencies - - "cd /home/non_root && sudo -u non_root make package_arch" - - "cd /home/non_root && pacman -U ArchLinux/*tar.zst --noconfirm" - # artifacts must be relative to the working directory (e.g. /builds/leap/bitmask-vpn) - - "cp /home/non_root/ArchLinux/*.tar.zst $CI_PROJECT_DIR" + - "PROVIDER=bitmask make vendor" + - "PROVIDER=bitmask QMAKE=qmake6 make package_deb" + - "make clean" + - "PROVIDER=riseup make vendor" + - "PROVIDER=riseup QMAKE=qmake6 make package_deb" artifacts: paths: - - '*.tar.zst' + - 'deploy/*' + - 'build/*' expire_in: 1 week tags: - linux