flexisip-account-manager/.gitlab-ci.yml

169 lines
4.2 KiB
YAML

#################################################
# Base configuration
#################################################
stages:
- package
- deploy
- test
.rpm:
tags: [ "docker" ]
stage: package
script:
- make rpm-dev
artifacts:
paths:
- rpmbuild/x86_64/*.rpm
when: always
expire_in: 1 year
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- flexiapi/vendor/
centos7-rpm:
extends: .rpm
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-centos7-php
rocky8-rpm:
extends: .rpm
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-rocky8-php
centos7-rpm-test:
tags: [ "docker-centos7" ]
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-centos7-php
dependencies:
- centos7-rpm
stage: test
script:
- yum -y localinstall rpmbuild/x86_64/*.rpm
- cd /opt/belledonne-communications/share/flexisip-account-manager/flexiapi
- scl enable rh-php73 "php artisan key:generate"
- scl enable rh-php73 "vendor/bin/phpunit --log-junit $CI_PROJECT_DIR/flexiapi_phpunit.log"
artifacts:
paths:
- $CI_PROJECT_DIR/flexiapi_phpunit.log
- flexiapi/storage/logs/
when: always
expire_in: 1 day
.package-deploy:
before_script:
- if ! [ -z ${SCP_PRIVATE_KEY+x} ]; then eval $(ssh-agent -s); fi
- if ! [ -z ${SCP_PRIVATE_KEY+x} ]; then echo "$SCP_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /dev/null; fi
stage: deploy
.rpm-deploy:
script:
- cd rpmbuild/x86_64
- rsync -e "ssh -o StrictHostKeyChecking=no" -pr . $DEPLOY_SERVER:$DEPLOY_DIRECTORY_STATE;
ssh $DEPLOY_SERVER "chmod a+r $DEPLOY_DIRECTORY_STATE/*.rpm && createrepo_c --update $DEPLOY_DIRECTORY_STATE/.";
only:
refs:
- master
changes:
- flexisip-account-manager.spec
extends:
- .package-deploy
.centos7-rpm-deploy:
extends: .rpm-deploy
tags: [ "docker-centos7" ]
dependencies:
- centos7-rpm
centos7-rpm-deploy-stable:
extends: .centos7-rpm-deploy
variables:
CENTOS7_DEPLOY_DIRECTORY_STATE: $CENTOS7_DEPLOY_DIRECTORY_STABLE
centos7-rpm-deploy-alpha:
extends: .centos7-rpm-deploy
variables:
CENTOS7_DEPLOY_DIRECTORY_STATE: $CENTOS7_DEPLOY_DIRECTORY_ALPHA
.rocky8-rpm-deploy:
extends: .rpm-deploy
tags: [ "docker" ]
dependencies:
- rocky8-rpm
# rocky8-rpm-deploy-stable:
# extends: .rocky8-rpm-deploy
# variables:
# DEPLOY_DIRECTORY_STATE: $CENTOS8_DEPLOY_DIRECTORY_STABLE
rocky8-rpm-deploy-alpha:
extends: .rocky8-rpm-deploy
variables:
DEPLOY_DIRECTORY_STATE: $CENTOS8_DEPLOY_DIRECTORY_ALPHA
debian11-packaging:
tags: [ "docker" ]
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian11-php:20220413_flexiapi_packaging
stage: package
script:
- make deb-dev
artifacts:
paths:
- ./*.deb
when: always
expire_in: 1 year
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- flexiapi/vendor/
.debian11-deploy:
extends: .package-deploy
tags: [ "docker" ]
image: gitlab.linphone.org:4567/bc/public/linphone-sdk/bc-dev-debian11-php:20220413_flexiapi_packaging
dependencies:
- debian11-packaging
variables:
RELEASE: bullseye
FREIGHT_PATH: $DEBIAN_FREIGHT_CONF_PATH
only:
refs:
- master
changes:
- flexisip-account-manager.spec
before_script:
- eval $(ssh-agent -s)
- echo "$DEPLOY_USER_KEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh && chmod 700 ~/.ssh
- echo "$DEPLOY_SERVER_HOST_KEY" >> ~/.ssh/known_hosts
script:
- id=$(cat /dev/urandom | tr -dc '[:alnum:]' | fold -w 10 | head -n 1) || true
- tmpdir="$MAKE_REPO_TMP/tmp-$id" || true
- rsync_dest="$DEPLOY_SERVER:$tmpdir/"
- echo ">>> Pushing packages into '$rsync_dest'"
- rsync -rv *.deb $rsync_dest
- ssh $DEPLOY_SERVER "echo \">>>> Making repository with Freight\"; (freight add --conf=$FREIGHT_PATH $tmpdir/*.deb apt/$RELEASE/$BRANCH && freight cache --conf=$FREIGHT_PATH apt/$RELEASE) || exit 1; echo \">>>> Removing '$tmpdir'\"; rm -r $tmpdir"
after_script:
- rm -rf ~/.ssh || true
debian11-stable-deploy:
extends: .debian11-deploy
variables:
BRANCH: stable
debian11-alpha-deploy:
extends: .debian11-deploy
variables:
BRANCH: alpha