Skip to content
.gitlab-ci.yml 2.9 KiB
Newer Older
image: maven:3-jdk-8
Patrik Dufresne's avatar
Patrik Dufresne committed

variables:
  MAVEN_OPTS: "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN
               -Dorg.slf4j.simpleLogger.showDateTime=true
               -Djava.awt.headless=true
               -Dmaven.repo.local=.m2/repository"

# Cache downloaded dependencies and plugins between builds.
cache:
  paths:
    - .m2/repository

stages:
  - build
  - deploy

# Install requirements to build.
before_script:
# Get version
- export REVISION="$(curl -L https://gitlab.com/ikus-soft/maven-scm-version/-/raw/master/version.sh | bash -)"
Patrik Dufresne's avatar
Patrik Dufresne committed
- echo "REVISION=$REVISION"
# Setup ssh
- eval $(ssh-agent -s)
- echo "$KALO_WWWDATA_PRIVATEKEY" | tr -d '\r' | ssh-add - > /dev/null
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh

test:
Patrik Dufresne's avatar
Patrik Dufresne committed
  script:
  - apt-get update && apt-get -qq install osslsigncode nsis cron gettext xvfb libgtk-3-0
  - xvfb-run mvn -B -Drevision=${REVISION} clean verify
Patrik Dufresne's avatar
Patrik Dufresne committed

sonar:
Patrik Dufresne's avatar
Patrik Dufresne committed
  allow_failure: true
  script:
  - apt-get update && apt-get -qq install osslsigncode nsis cron gettext xvfb libgtk-3-0
Patrik Dufresne's avatar
Patrik Dufresne committed
  - apt-get update && apt-get -qq install 
  - xvfb-run mvn -B -Drevision=${REVISION} -Dsonar.host.url=$SONAR_URL -Dsonar.login=$SONAR_TOKEN clean verify sonar:sonar
Patrik Dufresne's avatar
Patrik Dufresne committed

build_exe:
Patrik Dufresne's avatar
Patrik Dufresne committed
  stage: build   
Patrik Dufresne's avatar
Patrik Dufresne committed
  script:
  - apt-get update && apt-get -qq install osslsigncode nsis cron gettext curl
Patrik Dufresne's avatar
Patrik Dufresne committed
  # Setup authenticode
  - apt-get update && apt-get -qq install libssl-dev libcurl4-gnutls-dev autoconf osslsigncode
  - echo "$AUTHENTICODE_CERT" | tr -d '\r' > /tmp/authenticode-certs.pem
  - echo "$AUTHENTICODE_KEY" | tr -d '\r' > /tmp/authenticode.pem
  - mvn -B -Drevision=${REVISION} -DskipTests -Dsign.certs.path=/tmp/authenticode-certs.pem -Dsign.key.path=/tmp/authenticode.pem -Dsign.passphrase=$AUTHENTICODE_PASSPHRASE clean install
  artifacts:
    paths:
    - com.patrikdufresne.planimod-installation-package/target/planimod-*-install.exe
Patrik Dufresne's avatar
Patrik Dufresne committed
    - com.patrikdufresne.planimod-installation-package/target/planimod-*-linux.tar.gz
Patrik Dufresne's avatar
Patrik Dufresne committed

deploy:
  stage: deploy
  script:
  # Publish to kalo
Patrik Dufresne's avatar
Patrik Dufresne committed
  - scp -o StrictHostKeyChecking=no com.patrikdufresne.planimod-installation-package/target/planimod-${REVISION}-install.exe www-data@kalo.patrikdufresne.com:/var/www/patrikdufresne/archive/planimod/
  - scp -o StrictHostKeyChecking=no com.patrikdufresne.planimod-installation-package/target/planimod-${REVISION}-linux.tar.gz www-data@kalo.patrikdufresne.com:/var/www/patrikdufresne/archive/planimod/
Patrik Dufresne's avatar
Patrik Dufresne committed

promote:
  stage: deploy
Patrik Dufresne's avatar
Patrik Dufresne committed
  only:
  - tags
  script:
Patrik Dufresne's avatar
Patrik Dufresne committed
  - ssh -o StrictHostKeyChecking=no www-data@kalo.patrikdufresne.com ln -fs /var/www/patrikdufresne/archive/planimod/planimod-${REVISION}-install.exe /var/www/patrikdufresne/archive/planimod/planimod-latest-install.exe
  - ssh -o StrictHostKeyChecking=no www-data@kalo.patrikdufresne.com ln -fs /var/www/patrikdufresne/archive/planimod/planimod-${REVISION}-linux.tar.gz /var/www/patrikdufresne/archive/planimod/planimod-latest-linux.tar.gz