stages:
    - build
#    - test
    - deploy

build_ui:
    image: node
    tags:
        - docker
    stage: build
    script:
        - git submodule update --init
        - npm install
        - npm run build
    cache:
        paths:
            - node_modules/
    artifacts:
        name: "basispanel-ui-$CI_COMMIT_REF_NAME"
        expire_in: 1h
        paths:
            - assets
            - build
            - conf
            - index.html


start_review:
    image: mwienk/docker-lftp
    tags:
        - docker
    dependencies:
        - build_ui
    stage: deploy
    script:
        - cat index.html
        - mkdir _for_upload
        - mv assets build conf index.html _for_upload
        - lftp -c "set sftp:auto-confirm yes; open -u intern_basispanel_ui,$FTP_PASSWORD sftp://ftp.basehosts.de;mkdir -f /$CI_COMMIT_REF_NAME; mirror -v -n -e -R -L _for_upload/ /$CI_COMMIT_REF_NAME"
    environment:
        name: review/$CI_COMMIT_REF_NAME
        url: http://ui.basispanel.de/$CI_COMMIT_REF_NAME/
        on_stop: stop_review
        
stop_review:
    image: mwienk/docker-lftp
    tags:
        - docker
    stage: deploy
    variables:
        GIT_STRATEGY: none
    script:
        - echo stopping env
    environment:
        name: review/$CI_COMMIT_REF_NAME
        action: stop
    when: manual



fullsync_review:
    image: mwienk/docker-lftp
    tags:
        - docker
    dependencies:
        - build_ui
    stage: deploy
    script:
        - mkdir _for_upload
        - mv assets build conf index.html _for_upload
        - lftp -c "set sftp:auto-confirm yes; open -u intern_basispanel_ui,$FTP_PASSWORD sftp://ftp.basehosts.de;mkdir -f /$CI_COMMIT_REF_NAME; mirror -v --transfer-all -e -R -L _for_upload/ /$CI_COMMIT_REF_NAME"
    when: manual


docker_test:
    tags:
        - shell
    dependencies:
        - build_ui
    stage: deploy
    script:
        - mkdir _for_docker
        - mv assets build conf index.html _for_docker
        - docker-compose -p ${CI_PROJECT_NAME}_${CI_COMMIT_REF_NAME} up -d --build
