Fix FLEXIAPI-356 Cleanup and reorganize the pipeline to mutualize some things and save time

This commit is contained in:
Timothée Jaussoin 2025-07-09 15:58:24 +02:00
parent 40c8209cdc
commit f37bc45194
7 changed files with 64 additions and 41 deletions

View file

@ -24,26 +24,30 @@ debian12-deploy:
remi-rocky8-deploy:
extends: .deploy
rules:
- changes:
- .gitlab-ci.yml
script:
- ./deploy_packages.sh rockylinux
- ./deploy_packages.sh rockylinux 8
needs:
- remi-rocky8-package
- remi-rocky8-test
remi-rocky9-deploy:
extends: .deploy
rules:
- changes:
- .gitlab-ci.yml
script:
- ./deploy_packages.sh rockylinux
- ./deploy_packages.sh rockylinux 9
needs:
- remi-rocky9-package
- remi-rocky9-test
.deploy:
stage: deploy
tags: ["docker"]
only:
- master
- /^release/.*$/
rules:
- if: $CI_COMMIT_REF_NAME == "master"
- if: $CI_COMMIT_REF_NAME =~ /^release/
before_script:
- rm -f $CI_PROJECT_DIR/build/*devel*.rpm # Remove devel packages

View file

@ -1,4 +1,6 @@
rocky8-package:
needs:
- prepare-package
extends: .package
image: gitlab.linphone.org:4567/bc/public/docker/rocky8-php:$ROCKY_8_IMAGE_VERSION
script:
@ -8,9 +10,11 @@ rocky8-package:
- dnf -y module enable php:remi-8.2
- dnf -y update php\*
- dnf -y install php-sodium
- make rpm-el8
- make package-el8
rocky9-package:
needs:
- prepare-package
extends: .package
image: gitlab.linphone.org:4567/bc/public/docker/rocky9-php:$ROCKY_9_IMAGE_VERSION
script:
@ -20,16 +24,18 @@ rocky9-package:
- dnf -y module enable php:remi-8.2
- dnf -y update php\*
- dnf -y install php-sodium
- make rpm-el9
- make package-el9
debian12-package:
needs:
- prepare-package
extends: .debian_package
image: gitlab.linphone.org:4567/bc/public/docker/debian12-php:$DEBIAN_12_IMAGE_VERSION
.debian_package:
extends: .package
script:
- make deb
- make package-deb
remi-rocky8-package:
image: gitlab.linphone.org:4567/bc/public/docker/rocky8-php:$ROCKY_8_IMAGE_VERSION
@ -51,6 +57,9 @@ remi-rocky9-package:
.remi-rocky-package:
extends: .package
rules:
- changes:
- .gitlab-ci.yml
script:
# Remi
- mkdir -p $CI_PROJECT_DIR/build
@ -88,7 +97,13 @@ remi-rocky9-package:
- build/*
when: always
expire_in: 1 day
variables:
COMPOSER_CACHE_DIR: $CI_PROJECT_DIR/.composer/cache
COMPOSER_ALLOW_SUPERUSER: 1
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- flexiapi/vendor/
- .composer/cache

View file

@ -0,0 +1,11 @@
prepare-package:
tags: ["docker"]
stage: prepare-package
image: gitlab.linphone.org:4567/bc/public/docker/debian12-php:$DEBIAN_12_IMAGE_VERSION
script:
- make prepare-common
artifacts:
paths:
- rpmbuild/*
when: always
expire_in: 1 day

View file

@ -3,19 +3,16 @@ rocky8-test:
image: gitlab.linphone.org:4567/bc/public/docker/rocky8-php:$ROCKY_8_IMAGE_VERSION
needs:
- rocky8-package
- remi-rocky8-package
rocky9-test:
extends: .rocky-test
image: gitlab.linphone.org:4567/bc/public/docker/rocky9-php:$ROCKY_9_IMAGE_VERSION
needs:
- rocky9-package
- remi-rocky9-package
.rocky-test:
extends: .test
script:
- ls build
- yum -y localinstall build/*.rpm
- cd /opt/belledonne-communications/share/flexisip-account-manager/flexiapi
- composer install --ignore-platform-req=ext-sodium # Rocky 8 use the external library
@ -36,31 +33,12 @@ debian12-test:
- apt update
- apt install -y ./build/*.deb
- cd /opt/belledonne-communications/share/flexisip-account-manager/flexiapi
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- php composer-setup.php
- php -r "unlink('composer-setup.php');"
- php composer.phar install
- composer install
- vendor/bin/phpcs
- vendor/bin/phpmd . ansi phpmd.xml
- php artisan key:generate
- vendor/bin/phpunit --log-junit $CI_PROJECT_DIR/flexiapi_phpunit.log
remi-rocky8-test:
extends: .test
image: gitlab.linphone.org:4567/bc/public/docker/rocky8-php:$ROCKY_8_IMAGE_VERSION
needs:
- remi-rocky8-package
script:
- yum -y localinstall build/*.rpm
remi-rocky9-test:
extends: .test
image: gitlab.linphone.org:4567/bc/public/docker/rocky9-php:$ROCKY_9_IMAGE_VERSION
needs:
- remi-rocky9-package
script:
- yum -y localinstall build/*.rpm
mysql-latest-test:
extends: .test
image: gitlab.linphone.org:4567/bc/public/docker/debian12-php:$DEBIAN_12_IMAGE_VERSION
@ -75,6 +53,9 @@ mysql-latest-test:
DB_DATABASE: flexiapi
DB_PASSWORD: flexiapi
DB_USERNAME: root
rules:
- changes:
- flexiapi/database/migrations/*
script:
- apt update
- apt install -y ./build/*.deb

View file

@ -7,11 +7,13 @@ variables:
PHP_MSGPACK_REMI_VERSION: php-pecl-msgpack-2.2.0-3
include:
- '.gitlab-ci-files/prepare-package.yml'
- '.gitlab-ci-files/package.yml'
- '.gitlab-ci-files/test.yml'
- '.gitlab-ci-files/deploy.yml'
stages:
- prepare-package
- package
- test
- deploy

View file

@ -62,7 +62,7 @@ v2.0
- Fix FLEXIAPI-350 Fix wrongly assigned variables in some views
- Fix FLEXIAPI-351 Fix import of CSV generated on Windows
- Fix FLEXIAPI-352 Add missing errors box in the password change form
* Fix FLEXIAPI-353 Validate UUIDs in the vcards-storage endpoints, complete the documentation and fix the related tests
- Fix FLEXIAPI-356 Cleanup and reorganize the pipeline to mutualize some things and save time
v1.6
----

View file

@ -20,7 +20,7 @@ else
endif
cleanup-package-semvers:
rm flexisip-account-manager.spec.run
rm -f flexisip-account-manager.spec.run
prepare:
cd flexiapi && php composer.phar install --ignore-platform-req=ext-redis --no-dev
@ -58,11 +58,13 @@ package-end-common:
rm -rf $(OUTPUT_DIR)/rpmbuild/SPECS $(OUTPUT_DIR)/rpmbuild/SOURCES $(OUTPUT_DIR)/rpmbuild/SRPMS $(OUTPUT_DIR)/rpmbuild/BUILD $(OUTPUT_DIR)/rpmbuild/BUILDROOT
rpm-el8-only:
mkdir -p build
sed -i 's/Requires:.*/Requires: php >= 8.1, php-gd, php-pdo, php-redis, php-mysqlnd, php-mbstring/g' $(OUTPUT_DIR)/rpmbuild/SPECS/flexisip-account-manager.spec
rpmbuild -v -bb --define 'dist .el8' --define '_topdir $(OUTPUT_DIR)/rpmbuild' --define "_rpmdir $(OUTPUT_DIR)/rpmbuild" $(OUTPUT_DIR)/rpmbuild/SPECS/flexisip-account-manager.spec
@echo "📦✅ RPM el8 Package Created"
rpm-el9-only:
mkdir -p build
rpmbuild -v -bb --define 'dist .el9' --define '_topdir $(OUTPUT_DIR)/rpmbuild' --define "_rpmdir $(OUTPUT_DIR)/rpmbuild" $(OUTPUT_DIR)/rpmbuild/SPECS/flexisip-account-manager.spec
@echo "📦✅ RPM el9 Package Created"
@ -72,6 +74,7 @@ rpm-cleanup:
rm -r rpmbuild
deb-only:
mkdir -p build
sed -i 's/posttrans/post/g' $(OUTPUT_DIR)/rpmbuild/SPECS/flexisip-account-manager.spec
rpmbuild -v -bb --with deb --define '_topdir $(OUTPUT_DIR)/rpmbuild' --define "_rpmfilename tmp.rpm" --define "_rpmdir $(OUTPUT_DIR)/rpmbuild" $(OUTPUT_DIR)/rpmbuild/SPECS/flexisip-account-manager.spec
fakeroot alien -g -k --scripts $(OUTPUT_DIR)/rpmbuild/tmp.rpm
@ -88,11 +91,18 @@ deb-only:
mv *.deb build/.
rpm-el8: prepare package-semvers package-common rpm-el8-only rpm-cleanup cleanup-package-semvers package-end-common
rpm-el8-dev: prepare-dev package-semvers package-common rpm-el8-only rpm-cleanup cleanup-package-semvers package-end-common
rpm-el9: prepare package-semvers package-common rpm-el9-only rpm-cleanup cleanup-package-semvers package-end-common
rpm-el9-dev: prepare-dev package-semvers package-common rpm-el9-only rpm-cleanup cleanup-package-semvers package-end-common
deb: prepare package-semvers package-common deb-only cleanup-package-semvers package-end-common
deb-dev: prepare-dev package-semvers package-common deb-only cleanup-package-semvers package-end-common
prepare-common: prepare package-semvers package-common
package-el8: rpm-el8-only rpm-cleanup cleanup-package-semvers package-end-common
rpm-el8: prepare-common package-el8
rpm-el8-dev: prepare-dev package-semvers package-common package-el8
package-el9: rpm-el9-only rpm-cleanup cleanup-package-semvers package-end-common
rpm-el9: prepare-common package-el9
rpm-el9-dev: prepare-dev package-semvers package-common package-el9
package-deb: deb-only cleanup-package-semvers package-end-common
deb: prepare-common package-deb
deb-dev: prepare-dev package-semvers package-common package-deb
.PHONY: rpm