variables:
  GITLAB_TOKEN: '${CI_JOB_TOKEN}'

stages:
  - test
  - publish

# Do not run for merge requests
workflow:
  rules:
    - if: $CI_COMMIT_TAG
    - if: $CI_COMMIT_BRANCH

####
# Template: GitLab runner tags
####
.dev-tags:
  tags:
    - development

####
# Template: Run Node
####
.node:
  image: ${DEVOPS_REGISTRY}usgs/node:12
  extends: .dev-tags
  only:
    - branches
    - merge_requests
    - ${CI_DEFAULT_BRANCH}@ghsc/nshmp/disagg-d3
  before_script:
    - npm ci

####
# Stage: test
####

Build Angular:
  stage: test
  extends: .node
  script:
    - cd example
    - npm i
    - npm run build

Lint:
  stage: test
  extends: .node
  script:
    - npm run tslint

####
# Stage: publish
####

Publish npm:
  stage: publish
  image: ${DEVOPS_REGISTRY}usgs/node:12
  extends: .dev-tags
  only:
    - tags@ghsc/nshmp/disagg-d3
  before_script:
    - echo '//code.usgs.gov/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}' >> .npmrc
    - npm ci
    - git config user.email "${GITLAB_USER_EMAIL}"
    - git config user.name "${GITLAB_USER_NAME}"
  script:
    - npx standard-version --release-as ${CI_COMMIT_TAG} --skip.commit --skip.changelog
    - npm publish --access public