env:
  USE_NODE_12: true
  NODE_VERSION: '$(cat .nvmrc)'

steps:
  - label: ':hammer: :git: version'
    key: 'version'
    command: .buildkite/scripts/determine-version.sh
    artifact_paths: 'gitversion.json'

  - label: ':hammer: :docker:'
    command:
      - |
        docker build \
          --build-arg CODE_VERSION=$(buildkite-agent meta-data get "semantic-version") \
          --build-arg NODE_VERSION=${NODE_VERSION} \
          --build-arg SSH_PRIVATE_KEY \
          --target server \
          --tag virtru/sdk-local:js-$(buildkite-agent meta-data get "semantic-version") \
          --label "org.label-schema.build-date=$(date +%Y-%m-%dT%T%z)" \
          --label "org.label-schema.name=tdf3-js" \
          --label "org.label-schema.vcs-ref=${BUILDKITE_COMMIT}" \
          --label "org.label-schema.vcs-url=https://github.com/virtru/tdf3-js" \
          --label "org.label-schema.version=$(buildkite-agent meta-data get "semantic-version")" \
        .
      - docker push virtru/sdk-local:js-$(buildkite-agent meta-data get "semantic-version")
      - docker rmi -f virtru/sdk-local:js-$(buildkite-agent meta-data get "semantic-version")
    depends_on:
      - 'version'
      - 'unit-test'

  - label: ':npm: Install Dependencies (CI)'
    key: 'dependency'
    command: 'buildkite-scripts/mars/wrap/npm-ci.sh'

  - label: ':heavy_check_mark: Linting'
    key: 'dependency-audit'
    command: 'buildkite-scripts/scripts/run-linting.sh'
    depends_on: 'dependency'
    env:
      FORCE_LINT_TO_SUCCEED: true

  - label: ':key: License Checker'
    command: 'buildkite-scripts/scripts/run-license-checker.sh'
    depends_on: 'dependency'

  - label: ':npm: :lock: NPM Audit'
    commands:
      - buildkite-scripts/mars/wrap/npm-audit.sh --audit-level=moderate
    depends_on: 'dependency'

  - label: ':npm: run tests (ENVIRONMENT=local)'
    key: 'unit-test'
    command: 'buildkite-scripts/wrap/npm.sh run setup && ENVIRONMENT=local buildkite-scripts/scripts/npm-test.sh'
    depends_on: 'dependency'
