---
kind: pipeline
name: SonarQube check

image_pull_secrets:
 - dockerconfig

trigger:
  branch:
  - develop
  event:
  - push
  - custom

steps:
 - name: SonarQube check
   image: sonarsource/sonar-scanner-cli
   environment:
     SONAR_PROJECT:
       from_secret: sonarProjectId
     SONAR_TOKEN:
       from_secret: sonarToken
     SONAR_HOST:
       from_secret: sonarHost
     TEST: test

   commands:
     - sonar-scanner -Dsonar.projectKey=$${SONAR_PROJECT} -Dsonar.sources=. -Dsonar.host.url=$${SONAR_HOST}   -Dsonar.login=$${SONAR_TOKEN}
   depends_on:
     - clone

---
kind: pipeline
name: Build image

image_pull_secrets:
 - dockerconfig

trigger:
  ref:
    - refs/heads/testing
    - refs/heads/master
    - refs/tags/*

steps:
 - name: Prepare image
   image: mxfox.ru/mxfox/fox-web-basic:latest
   commands:
     - |
        apt-get update -y
        apt-get install curl -y
        cd /tmp
        curl -sS https://getcomposer.org/installer -o composer-setup.php
        php composer-setup.php --install-dir=/usr/local/bin --filename=composer
        DEBIAN_FRONTEND=noninteractive TZ=Europe/Moscow apt-get -y install tzdata
        cd -
     - composer install 
     - |
        find . -name "*~"  		-prune -exec rm -rf '{}' \; 
        find . -name "*.bak" 	-prune -exec rm -rf '{}' \; 
        find . -name "*.old" 	-prune -exec rm -rf '{}' \;
        find . -name ".git" 	-prune -exec rm -rf '{}' \;
        find . -name ".settings"	-prune -exec rm -rf '{}' \;
        find . -name ".buildpath" 	-prune -exec rm -rf '{}' \;
        find . -name ".project" 	-prune -exec rm -rf '{}' \;
        find . -name "README.*" 	-prune -exec rm -rf '{}' \;
        find . -name "*.md" 	-prune -exec rm -rf '{}' \;
        find . -name "composer.*" 	-prune -exec rm -rf '{}' \;
        find . -name ".travis*" 	-prune -exec rm -rf '{}' \;
        find . -name "installed.json" -prune -exec rm -rf '{}' \;
        find . -name "*.sample" -prune -exec rm -rf '{}' \;
        find . -type d ! -path './.git/**' ! -path './static/**' ! -path "./static" ! -path ./*/modules/*/static*  -exec bash -c 'test -f {}/.htaccess && echo -n "[ SKIP ] " || (cp ./docker-build/.htaccess {} && echo -n "[  ADD ] ") && echo {}/.htaccess' \;
        cp docker-build/Dockerfile Dockerfile
        rm -f composer.*   

 - name: Build docker image
   image: mxfox.ru/mxfox/docker-dind.buildx:latest
   privileged: true
   environment:
     DOCKER_AUTH:
       from_secret: dockerconfig
     IMAGE_PREFIX: mxfox.ru/mxfox/chimera-mk2-core
     
   commands:   
   - buildx-bgstart.sh
   - echo $${DOCKER_AUTH} > ~/.docker/config.json
   - echo "CB ${CI_COMMIT_BRANCH}"
   - echo "DT ${DRONE_TAG}"
   - |
       if [ -n "${DRONE_TAG}" ]
       then
          export xBuildSuffix=" -t $${IMAGE_PREFIX}:${DRONE_TAG} -t $${IMAGE_PREFIX}:latest --push"
       else
          export xBuildSuffix=" -t $${IMAGE_PREFIX}:${CI_COMMIT_BRANCH}-${CI_BUILD_NUMBER}-${DRONE_COMMIT_SHA:0:10}  -t $${IMAGE_PREFIX}:${CI_COMMIT_BRANCH} --push"
       fi

   - docker buildx build --platform linux/amd64,linux/arm64 . $${xBuildSuffix}   

---
kind: pipeline
name: Export code
image_pull_secrets:
 - dockerconfig
trigger:
  ref:
    - refs/tags/*
steps:
 - name: Export code
   image: mxfox.ru/mxfox/fox-web-basic:latest
   commands:
     - echo "Not implemented yet"     