# Node.js with Angular
# Build a Node.js project that uses Angular.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

name: $(majorMinorVersion).$(semanticVersion)

trigger:
- master

pool:
  vmImage: ubuntu-latest

steps:
- script: |
      echo ${{ variables.major }} # outputs initialValue
- task: NodeTool@0
  inputs:
    versionSpec: '16.x'
  displayName: 'Install Node.js 16.x'

- task: NuGetAuthenticate@1
  displayName: 'NuGet Authenticate'

- task: npmAuthenticate@0
  inputs:
    workingFile: '.npmrc'

- task: CmdLine@2
  displayName: Checkout $(Build.SourceBranchName)
  inputs:
    script: 'git checkout $(Build.SourceBranchName)'


- script: |
    git clean -ndx
  displayName: 'Git Clean'

- script: |
    npm cache clean --force
    npm install -g @angular/cli@14.0.5
  displayName: 'Install angular cli 14.x'

- script: |
    npm install
  displayName: 'Install'

- script: |
    ng build material-table --configuration=production
  displayName: 'ng build project'


- task: CopyFiles@2
  displayName: 'Copy dist to artifacts'
  inputs:
      SourceFolder: '$(Build.SourcesDirectory)/dist/material-table'
      Contents: '**'
      TargetFolder: '$(Build.artifactstagingdirectory)/dist'
      cleanTargetFolder: true

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifacts'
  inputs:
      PathtoPublish: '$(Build.artifactstagingdirectory)'
      ArtifactName: '@orangebees/ng-material-table'


- task: NuGetAuthenticate@0
  displayName: 'NuGet Authenticate'

- task: CopyFiles@2
  displayName: copy npmrc file
  inputs:
      sourceFolder: "npmrc"
      Contents: "**"
      targetFolder: "$(Build.artifactstagingdirectory)/dist"


- task: npmAuthenticate@0
  inputs:
    workingFile: '.npmrc'


- task: Npm@1
  inputs:
    command: 'publish'
    workingDir: '$(Build.artifactstagingdirectory)/dist'
    publishRegistry: 'useFeed'
    publishFeed: '6edcc520-998f-40cf-bd3a-f69e35e35902'
