Skip to content
Snippets Groups Projects
.gitlab-ci.yml 6.17 KiB
variables:
  BASE_HREF: nshmp
  GITLAB_TOKEN: '${CI_JOB_TOKEN}'
  IMAGE_NAME: ${CODE_REGISTRY_IMAGE}/${CI_PROJECT_NAME}:${ENVIRONMENT}-${CI_COMMIT_SHORT_SHA}
  UPSTREAM_PATH: ghsc/nshmp/nshmp-apps

image: ${CI_REGISTRY}/devops/images/usgs/node:20

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

stages:
  - init
  - build
  - image
  - security
  - test
  - e2e
  - deploy

default:
  tags:
    - dev

####
# Environment Templates
####

##
# Rule for development environment
##
.development-env: &development-env
  if: >
    $CI_PROJECT_PATH != $UPSTREAM_PATH
    || (
      $CI_PROJECT_PATH == $UPSTREAM_PATH
      && (
        $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
        && $CI_COMMIT_BRANCH != 'production'
        && $CI_COMMIT_TAG == null
      )
    )
  variables:
    ENVIRONMENT: development

##
# Rule for staging environment
##
.staging-env: &staging-env
  if: >
    $CI_PROJECT_PATH == $UPSTREAM_PATH
    && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
  variables:
    ENVIRONMENT: staging

##
# Rule for production envrionment
##
.production-env: &production-env
  if: >
    $CI_PROJECT_PATH == $UPSTREAM_PATH
    && ( $CI_COMMIT_TAG && $CI_COMMIT_TAG != '' )
  variables:
    ENVIRONMENT: production

####
# Docker Templates