.gitlab-ci.yml 3.75 KB
Newer Older
1 2 3 4 5 6 7
# Specify docker image
image: debian:stretch

# Define variable to disable SSL verification of GIT
variables:
  GIT_SSL_NO_VERIFY: "true"

8
stages:
9 10 11
  - lint
  - codestyle
  - manpages
12
  - transifex
13
  - tarballs
14

15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
## Stage lint

# 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

## Stage codestyle

37 38
# PHP codesniffer
create_php_code_sniffer_rapport:
39
  stage: codestyle
40 41
  only:
    - branches
42 43 44
  before_script:
    - apt-get update -qq
    - apt-get install -y -qq  git php-cli php-codesniffer
45
  script:
46
    - git clone https://gitlab.fusiondirectory.org/fusiondirectory/dev-tools.git ../dev-tools
47 48
    - find . -type f -name '*.php' -o -name '*.inc' > ./filelist
    - phpcs --ignore=class_sieve.inc --standard=../dev-tools/php-codesniffer-rules/FDStandard/ruleset.xml --file-list=./filelist
49

50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
# Sonar publishing
sonar_publish:
  image: sonar-cli:3.1.0.1141
  stage: codestyle
  only:
    - 1.3-dev
  script:
    - /home/sonar/*/bin/sonar-scanner
      -D sonar.projectKey=fusiondirectory-plugins-dev
      -D sonar.projectName=FusionDirectory-Plugins-Dev
      -D sonar.projectVersion=1.3
      -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.3-dev
  script:
    - /home/sonar/*/bin/sonar-scanner
      -D sonar.projectKey=fusiondirectory-plugins-dev
      -D sonar.projectName=FusionDirectory-Plugins-Dev
      -D sonar.projectVersion=1.3
      -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

85 86
# fusiondirectory-update-locale
fusiondirectory-update-locale:
87
  image: php:cli-stretch
88
  stage: transifex
89 90
  only:
    - branches
91 92
  before_script:
    - apt-get update -qq
93
    - apt-get install -y -qq gettext git
94 95
  script:
    - git clone https://gitlab.fusiondirectory.org/fusiondirectory/dev-tools.git ../dev-tools
96
    - ../dev-tools/locale-scripts/fusiondirectory-update-locale-plugins
97

98 99
# Update transifex
update-transifex:
100
  image: php:cli-stretch
101
  stage: transifex
102
  only:
103
    - /^1.*$/
104 105
  before_script:
    - apt-get update -qq
106
    - apt-get install -y -qq gettext git transifex-client
107 108 109 110
  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
111
    - ../dev-tools/locale-scripts/fusiondirectory-update-locale-plugins
112
    - tx push -f -s -t --skip --no-interactive
113 114

build-tarballs:
115
  stage: tarballs
116 117 118 119 120 121 122
  script:
    - tar -cvzf fusiondirectory-plugins.tar.gz *
  artifacts:
    paths:
    - fusiondirectory-plugins.tar.gz
    expire_in: 1h

123 124 125 126 127
build-release:
  stage: tarballs
  only:
    - tags
  script: 
128
    - tar -cvzf fusiondirectory-plugins-$(grep '%' Changelog.md | head -n1 | cut -d ' ' -f3 | tr -d '"').tar.gz *
129 130
  artifacts:
    paths:
131
      - fusiondirectory-plugins-$(grep '%' Changelog.md | head -n1 | cut -d ' ' -f3 | tr -d '"').tar.gz