-
dockx thibault authored
Gitlab-ci.yml requires updates following PHPCompatibility and PHPcsutils
Verified875984d2
This GitLab CI configuration is valid.
Learn more
stages:
- lint
- codestyle
- transifex
- tarballs
- trigger
## Stage lint
# Perl lint
create_perl_lint_rapport:
image: registry.fusiondirectory.org/fusiondirectory/fd/perlcodestyle:stretch
stage: lint
only:
- branches
script:
- perl -cW contrib/bin/fusiondirectory-setup
# PHP lint (stretch)
create_php_lint_rapport:
image: registry.fusiondirectory.org/fusiondirectory/fd/phpcodesniffer-cli:buster
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:
image: registry.fusiondirectory.org/fusiondirectory/fd/perlcodestyle:stretch
stage: lint
only:
- branches
script:
- 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-setup.1
- lexgrog contrib/man/fusiondirectory.conf.5
## Stage codestyle
# Generate perlcritic rapport
create_perlcritic_rapport:
image: registry.fusiondirectory.org/fusiondirectory/fd/perlcodestyle:stretch
stage: codestyle
only:
- branches
script:
- cp contrib/bin/fusiondirectory-setup contrib/bin/fusiondirectory-setup.pl
- perlcritic --quiet --verbose "%f~|~%s~|~%l~|~%c~|~%m~|~%e~|~%p~||~%n" contrib/bin
# PHP codesniffer
create_php_code_sniffer_rapport:
image: registry.fusiondirectory.org/fusiondirectory/fd/phpcodesniffer-cli:buster
stage: codestyle
only:
- branches
script:
- test -d ../dev-tools/ && rm -Rf ../dev-tools/
- git clone --depth 1 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
- git clone --depth 1 https://github.com/PHPCompatibility/PHPCompatibility.git ../PHPCompatibility
- git clone --depth 1 https://github.com/PHPCSStandards/PHPCSUtils.git ../PHPCSUtils
- phpcs --config-set installed_paths /builds/fusiondirectory/PHPCompatibility,/builds/fusiondirectory/PHPCSUtils
- phpcs --standard=PHPCompatibility --runtime-set testVersion 7.0-7.4 --file-list=./filelist
# phpstan
create_phpstan_rapport:
image: registry.fusiondirectory.org/fusiondirectory/fd/phpstan:buster
7172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
stage: codestyle
only:
- branches
script:
- test -d ../dev-tools/ && rm -Rf ../dev-tools/
- git clone --depth 1 https://gitlab.fusiondirectory.org/fusiondirectory/dev-tools.git ../dev-tools
- cp ../dev-tools/phpstan/fusiondirectory/1.4-dev/*.neon .
- /root/.composer/vendor/bin/phpstan analyse -c phpstan.neon
# fusiondirectory-update-locale
fusiondirectory-update-locale:
image: registry.fusiondirectory.org/fusiondirectory/fd/transifex-cli:stretch
stage: transifex
only:
- /^1.*$/
script:
- test -d ../dev-tools/ && rm -Rf ../dev-tools/
- git clone --depth 1 https://gitlab.fusiondirectory.org/fusiondirectory/dev-tools.git ../dev-tools
- ../dev-tools/locale-scripts/fusiondirectory-update-locale -g
# Update transifex
update-transifex:
image: registry.fusiondirectory.org/fusiondirectory/fd/transifex-cli:stretch
stage: transifex
only:
- /^1.*$/
script:
- test -d ../dev-tools/ && rm -Rf ../dev-tools/
- git clone --depth 1 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 -s -t --skip --no-interactive
build-tarballs:
stage: tarballs
only:
- 1.4-dev
script:
- mkdir ../fusiondirectory-1.4/
- mv ./* ../fusiondirectory-1.4/
- mv ../fusiondirectory-1.4/ ./
- tar -cvzf fusiondirectory-1.4.tar.gz *
artifacts:
paths:
- fusiondirectory-1.4.tar.gz
expire_in: 30d
build-release:
stage: tarballs
only:
- tags
script:
- mkdir ../fusiondirectory-$(grep '%' Changelog.md | head -n1 | cut -d ' ' -f3 | tr -d '"')/
- mv ./* ../fusiondirectory-$(grep '%' Changelog.md | head -n1 | cut -d ' ' -f3 | tr -d '"')/
- mv ../fusiondirectory-$(grep '%' Changelog.md | head -n1 | cut -d ' ' -f3 | tr -d '"')/ ./
- tar -cvzf fusiondirectory-$(grep '%' Changelog.md | head -n1 | cut -d ' ' -f3 | tr -d '"').tar.gz *
artifacts:
paths:
- fusiondirectory-$(grep '%' Changelog.md | head -n1 | cut -d ' ' -f3 | tr -d '"').tar.gz
trigger-plugins:
variables:
GROUP: $GROUP
BRANCH_CORE: $CI_COMMIT_REF_NAME
BRANCH_PLUGIN: $CI_COMMIT_REF_NAME
BRANCH_BUILD_DEBIAN_STRETCH: $BRANCH_BUILD_DEBIAN_STRETCH
BRANCH_BUILD_DEBIAN_BUSTER: $BRANCH_BUILD_DEBIAN_BUSTER
BRANCH_BUILD_CENTOS_7: $BRANCH_BUILD_CENTOS_7
stage: trigger
141142143144145146
only:
- 1.4-dev
trigger:
project: fusiondirectory/fd-plugins
branch: $CI_COMMIT_REF_NAME