Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.69 KiB
Newer Older
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
variables:
  GITLAB_TOKEN: '${CI_JOB_TOKEN}'

image: ${CI_REGISTRY}/devops/images/usgs/node:lts
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
# Do not run for merge requests
workflow:
  rules:
    - if: $CI_COMMIT_TAG
    - if: $CI_COMMIT_BRANCH

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
stages:
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  - init
  - build
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  - test
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  - publish

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
default:
  tags:
    - nshmp

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
####
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
# Stage: init
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
####
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
Init:
  artifacts:
    paths:
      - node_modules
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
      - example/node_modules
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  script:
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
    - npm ci
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
    - cd example
    - npm ci
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  stage: init
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
####
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
# Stage: Build
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
####

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
Audit:
  allow_failure: true
  needs: []
  script:
    - npm audit
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  stage: build
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
Audit Angular:
  allow_failure: true
  needs: []
  script:
    - cd example
    - npm audit
  stage: build

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
Build Angular:
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  needs:
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
    - Init
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  script:
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
    - cd example
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
    - npm run build
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  stage: build
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
Lint Angular:
  needs:
    - Init
  script:
    - cd example
    - npm run lint
  stage: build

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
Lint Project:
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  needs:
    - Init
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  script:
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
    - npm run lint
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  stage: build
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
####
# Stage: Test
####

Angular Unit Tests:
  artifacts:
    paths:
      - example/coverage/example
    reports:
      junit: example/junit.xml
  needs:
    - Init
  script:
    - cd example
    - npm run test
  stage: test

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
####
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
# Stage: Publish
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
####

Publish npm:
  only:
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
    - tags
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  needs:
    - Audit
    - Audit Angular
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
    - Init
    - Build Angular
    - Lint Project
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  script:
    - |
      cat <<-EO_CONFIG > .npmrc
      @${CI_PROJECT_ROOT_NAMESPACE}:registry=https://${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/
      //${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
      git-tag-version=false
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
      EO_CONFIG
    - npm --no-git-tag-version version "${CI_COMMIT_TAG}";
    - npm publish
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  stage: publish