variables:
  GIT_REPO_URL: "git@github.com:sergiu-gordienco/application-prototype.git"

stages:
  - reposync
  - publish
  - deploy

pages:
  stage: deploy
  script:
    - mkdir .public
    - cp -r documentation/* .public
    - mv .public public
  artifacts:
    paths:
      - public
  only:
    - master


image:
  name: ubuntu:latest
  entrypoint: []

before_script:
  - apt update -y > /dev/null
  - apt install -y wget git > /dev/null
  - wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash
  - export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
  - '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'
  - nvm install --no-progress 10.17.0 > /dev/null
  - npm install


repo_sync_github:
  stage: reposync
  only:
    - /^(master|v\d.*)$/
  before_script:
    - 'which ssh-agent || ( apt-get update -y > /dev/null && apt-get install openssh-client -y > /dev/null)'
    - eval $(ssh-agent -s)
    - mkdir -p ~/.ssh
    - echo "$NPM_RC" > ~/.npmrc
    - echo "$SSH_CONFIG" > ~/.ssh/config
    - echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
    - echo "$SSH_PUBLIC_KEY" > ~/.ssh/id_rsa.pub
    - chmod 700 ~/.ssh
    - chmod 600 ~/.ssh/config
    - chmod 600 ~/.ssh/id_rsa
    - chmod 644 ~/.ssh/id_rsa.pub
    - apt install -y git wget > /dev/null
    - wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash > /dev/null
    - export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
    - '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'
    - nvm install --no-progress 10.17.0 > /dev/null
    - git config --global user.email "noreply+opensource-bot@sgapps.io"
    - git config --global user.name "🤖 opensource-bot@sgapps.io"
  script:
    - ssh -T git@labs.sgapps.io || echo "done"
    - ssh -T git@github.com || echo "done"
    - mkdir _repo
    - git clone "$CI_REPOSITORY_URL" _repo
    - cd _repo
    - git remote add origin-github "$GIT_REPO_URL"
    - git push origin-github master

npm_publish:
  stage: publish
  only:
    - /^v\d.*$/
  except:
    - branches
  before_script:
    - 'which ssh-agent || ( apt-get update -y > /dev/null && apt-get install openssh-client -y > /dev/null)'
    - eval $(ssh-agent -s)
    - mkdir -p ~/.ssh
    - echo "$NPM_RC" > ~/.npmrc
    - echo "$SSH_CONFIG" > ~/.ssh/config
    - echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
    - echo "$SSH_PUBLIC_KEY" > ~/.ssh/id_rsa.pub
    - chmod 700 ~/.ssh
    - chmod 600 ~/.ssh/config
    - chmod 600 ~/.ssh/id_rsa
    - chmod 644 ~/.ssh/id_rsa.pub
    - apt install -y git wget > /dev/null
    - wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash > /dev/null
    - export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
    - '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm'
    - nvm install --no-progress 10.17.0 > /dev/null
    - git config --global user.email "noreply+opensource-bot@sgapps.io"
    - git config --global user.name "🤖 opensource-bot@sgapps.io"
  script:
    - ssh -T git@labs.sgapps.io || echo "done"
    - ssh -T git@github.com || echo "done"
    - mkdir _repo
#    - git clone --depth 1  "$CI_REPOSITORY_URL" _repo
    - git clone "$CI_REPOSITORY_URL" _repo
    - cd _repo
    - git remote add origin-github "$GIT_REPO_URL"
    - git push --tags origin-github
    - npm publish
