variables:
  EXTENSION_PATH: "./deadlock-plugins/deadlock-extension"
  REGISTRY: "registry.takima.io"

stages:
  - build
  - publish


build:
  stage: build
  services:
    - docker:18.09.6-dind
  variables:
    VERSION: "desktop"

  before_script:
    - apk update
    - apk add nodejs npm
    - export TAG=${CI_COMMIT_TAG:-latest}
    - ./setup.sh
  script:
    - ./build.sh $TAG desktop $CI_REGISTRY_IMAGE
    - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $REGISTRY
    - docker push $CI_REGISTRY_IMAGE/$VERSION:$TAG
  only:
    - master

desktop_extension:package:pre-release:
  stage: build
  cache:
    paths:
      - $EXTENSION_PATH
    policy: push
  before_script:
    - apk update
    - apk add nodejs npm
    - rm -f $EXTENSION_PATH/*.vsix
    - npm install --prefix $EXTENSION_PATH
  script:
    - ./build-desktop.sh staging
  only:
    - master


desktop_extension:publish:pre-release:
  stage: publish
  cache:
    paths:
      - $EXTENSION_PATH
    policy: pull

  before_script:
    - apk update
    - apk add nodejs npm
    - npm install --prefix $EXTENSION_PATH
  script:
    - cd $EXTENSION_PATH
    - npm run vsce-publish -- --pre-release -p $VSCODE_EXTENSION_MARKET_PLACE_ACCESS_TOKEN
  only:
    - master


desktop_extension:package:release:
  stage: build
  cache:
    paths:
      - $EXTENSION_PATH

    policy: push
  before_script:
    - apk update
    - apk add nodejs npm
    - rm -f $EXTENSION_PATH/*.vsix
    - npm install --prefix $EXTENSION_PATH
  script:
    - ./build-desktop.sh prod
  rules:
    - if: $CI_COMMIT_BRANCH == "master" && $CI_COMMIT_TAG =~ /^(?:\d+\.){2}(?:\d+)$/

desktop_extension:publish:release:
  stage: publish
  cache:
    paths:
      - $EXTENSION_PATH
    policy: pull

  before_script:
    - apk update
    - apk add nodejs npm
    - npm install --prefix $EXTENSION_PATH
  script:
    - cd $EXTENSION_PATH
    - npm run vsce-publish -- -p $VSCODE_EXTENSION_MARKET_PLACE_ACCESS_TOKEN
  rules:
    - if: $CI_COMMIT_BRANCH == "master" && $CI_COMMIT_TAG =~ /^(?:\d+\.){2}(?:\d+)$/