# Specify docker image image: debian:stretch # Define variable to disable SSL verification of GIT variables: GIT_SSL_NO_VERIFY: "true" stages: - lint - codestyle - transifex - tarballs ## Stage lint # Perl lint create_perl_lint_rapport: stage: lint only: - branches before_script: - apt-get update -qq - apt-get install -y -qq libarchive-extract-perl libcrypt-cbc-perl libdigest-sha-perl libfile-copy-recursive-perl - apt-get install -y -qq libnet-ldap-perl libpath-class-perl libterm-readkey-perl libxml-twig-perl script: - perl -cW contrib/bin/fusiondirectory-setup contrib/bin/fusiondirectory-insert-schema # PHP lint (jessie) create_php_lint_rapport_jessie: image: php:5.6.33-cli-jessie stage: lint only: - branches script: - find . -type f -name '*.php' -o -name '*.inc' -print0 | xargs -0 -n1 php -l # PHP lint (stretch) create_php_lint_rapport_stretch: image: php:cli-stretch stage: lint only: - branches script: - find . -type f -name '*.php' -o -name '*.inc' -print0 | xargs -0 -n1 php -l # generate man pages to test validity create_manpages_lint_report: stage: lint only: - branches before_script: - apt-get update -qq - apt-get install -y -qq perl man-db script: - pod2man -c "FusionDirectory Documentation" -r "FusionDirectory 1.3" contrib/bin/fusiondirectory-insert-schema contrib/man/fusiondirectory-insert-schema.1 - pod2man -c "FusionDirectory Documentation" -r "FusionDirectory 1.3" contrib/bin/fusiondirectory-setup contrib/man/fusiondirectory-setup.1 - pod2man -c "FusionDirectory Documentation" -r "FusionDirectory 1.3" contrib/man/fusiondirectory.conf.pod contrib/man/fusiondirectory.conf.5 - lexgrog contrib/man/fusiondirectory-insert-schema.1 - lexgrog contrib/man/fusiondirectory-setup.1 - lexgrog contrib/man/fusiondirectory.conf.5 ## Stage codestyle # Generate perlcritic rapport create_perlcritic_rapport: stage: codestyle only: - branches before_script: - apt-get update -qq - apt-get install -y -qq libperl-critic-perl script: - cp contrib/bin/fusiondirectory-setup contrib/bin/fusiondirectory-setup.pl - cp contrib/bin/fusiondirectory-insert-schema contrib/bin/fusiondirectory-insert-schema.pl - perlcritic --quiet --verbose "%f~|~%s~|~%l~|~%c~|~%m~|~%e~|~%p~||~%n" contrib/bin # PHP codesniffer create_php_code_sniffer_rapport: stage: codestyle only: - branches before_script: - apt-get update -qq - apt-get install -y -qq git php-cli php-codesniffer script: - git clone https://gitlab.fusiondirectory.org/fusiondirectory/dev-tools.git ../dev-tools - find . -type f -name '*.php' -o -name '*.inc' > ./filelist - phpcs --standard=../dev-tools/php-codesniffer-rules/FDStandard/ruleset.xml --file-list=./filelist # Sonar publishing sonar_publish: image: sonar-cli:3.1.0.1141 stage: codestyle only: - 1.4-dev script: - /home/sonar/*/bin/sonar-scanner -D sonar.projectKey=fusiondirectory-1.4-dev -D sonar.projectName=FusionDirectory-1.4-Dev -D sonar.projectVersion=1.4 -D sonar.sourceEncoding=UTF-8 -D sonar.exclusions='html/themes/legacy/**/*,include/class_xml.inc' -D sonar.gitlab.project_id="$CI_PROJECT_PATH" -D sonar.gitlab.commit_sha="$CI_COMMIT_SHA" -D sonar.gitlab.ref_name="$CI_COMMIT_REF_NAME" # Sonar preview sonar_preview: image: sonar-cli:3.1.0.1141 stage: codestyle except: - 1.4-dev script: - /home/sonar/*/bin/sonar-scanner -D sonar.projectKey=fusiondirectory-1.4-dev -D sonar.projectName=FusionDirectory-1.4-Dev -D sonar.projectVersion=1.4 -D sonar.sourceEncoding=UTF-8 -D sonar.exclusions='html/themes/legacy/**/*,include/class_xml.inc' -D sonar.gitlab.project_id="$CI_PROJECT_PATH" -D sonar.gitlab.commit_sha="$CI_COMMIT_SHA" -D sonar.gitlab.ref_name="$CI_COMMIT_REF_NAME" -D sonar.analysis.mode=preview # fusiondirectory-update-locale fusiondirectory-update-locale: image: php:cli-stretch stage: transifex only: - branches before_script: - apt-get update -qq - apt-get install -y -qq gettext git script: - git clone https://gitlab.fusiondirectory.org/fusiondirectory/dev-tools.git ../dev-tools - ../dev-tools/locale-scripts/fusiondirectory-update-locale -g # Update transifex update-transifex: image: php:cli-stretch stage: transifex only: - /^1.*$/ before_script: - apt-get update -qq - apt-get install -y -qq gettext git transifex-client script: - git clone https://gitlab.fusiondirectory.org/fusiondirectory/dev-tools.git ../dev-tools - echo $'[https://www.transifex.com]\nhostname = https://www.transifex.com\nusername = '"$TRANSIFEX_USER"$'\npassword = '"$TRANSIFEX_PASSWORD"$'\ntoken = '"$TRANSIFEX_API_TOKEN"$'\n' > ~/.transifexrc - tx pull -a -f - ../dev-tools/locale-scripts/fusiondirectory-update-locale -g - tx push -f -s -t --skip --no-interactive build-tarballs: stage: tarballs script: - tar -cvzf fusiondirectory-core.tar.gz * artifacts: paths: - fusiondirectory-core.tar.gz expire_in: 1h build-release: stage: tarballs only: - tags script: - tar -cvzf fusiondirectory-core-$(grep '%' Changelog.md | head -n1 | cut -d ' ' -f3 | tr -d '"').tar.gz * artifacts: paths: - fusiondirectory-core-$(grep '%' Changelog.md | head -n1 | cut -d ' ' -f3 | tr -d '"').tar.gz