parameters:
  - name: LinuxImage
    type: string
    default: "ubuntu-latest"
  - name: GeneratorVersion
    type: string
    default: "5.0.1"

jobs:
- job: GenerateApiClients
  displayName: 'Generate Api Clients'
  condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/v')
  dependsOn: Test

  pool:
    vmImage: "${{ parameters.LinuxImage }}"

  steps:
    - task: DownloadPipelineArtifact@2
      displayName: 'Download OpenAPI Spec Artifact'
      inputs:
        source: 'current'
        artifact: "OpenAPI Spec"
        path: "$(System.ArtifactsDirectory)/openapispec"
        runVersion: "latest"

    - task: CmdLine@2
      displayName: 'Download OpenApi Generator'
      inputs:
        script: "wget https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/${{ parameters.GeneratorVersion }}/openapi-generator-cli-${{ parameters.GeneratorVersion }}.jar -O openapi-generator-cli.jar"

## Authenticate with npm registry
    - task: npmAuthenticate@0
      inputs:
        workingFile: ./.npmrc
        customEndpoint: 'jellyfin-bot for NPM'

## Generate npm api client
    - task: CmdLine@2
      displayName: 'Build stable typescript axios client'
      inputs:
        script: "bash ./apiclient/templates/typescript/axios/generate.sh $(System.ArtifactsDirectory)"

## Run npm install
    - task: Npm@1
      displayName: 'Install npm dependencies'
      inputs:
        command: install
        workingDir: ./apiclient/generated/typescript/axios

## Publish npm packages
    - task: Npm@1
      displayName: 'Publish stable typescript axios client'
      inputs:
        command: custom
        customCommand: publish --access public
        publishRegistry: useExternalRegistry
        publishEndpoint: 'jellyfin-bot for NPM'
        workingDir: ./apiclient/generated/typescript/axios
