azure-pipelines-api-client.yml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. parameters:
  2. - name: LinuxImage
  3. type: string
  4. default: "ubuntu-latest"
  5. - name: GeneratorVersion
  6. type: string
  7. default: "5.0.0-beta2"
  8. jobs:
  9. - job: GenerateApiClients
  10. displayName: 'Generate Api Clients'
  11. dependsOn: Test
  12. pool:
  13. vmImage: "${{ parameters.LinuxImage }}"
  14. steps:
  15. - task: DownloadPipelineArtifact@2
  16. displayName: 'Download OpenAPI Spec Artifact'
  17. inputs:
  18. source: 'current'
  19. artifact: "OpenAPI Spec"
  20. path: "$(System.ArtifactsDirectory)/openapispec"
  21. runVersion: "latest"
  22. - task: CmdLine@2
  23. displayName: 'Download OpenApi Generator'
  24. inputs:
  25. 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"
  26. ## Generate npm api client
  27. # Unstable
  28. - task: CmdLine@2
  29. displayName: 'Build unstable typescript axios client'
  30. condition: startsWith(variables['Build.SourceBranch'], 'refs/heads/master')
  31. inputs:
  32. script: "bash ./apiclient/templates/typescript/axios/generate.sh $(System.ArtifactsDirectory) $(Build.BuildNumber)"
  33. # Stable
  34. - task: CmdLine@2
  35. displayName: 'Build stable typescript axios client'
  36. condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/v')
  37. inputs:
  38. script: "bash ./apiclient/templates/typescript/axios/generate.sh $(System.ArtifactsDirectory)"
  39. ## Run npm install
  40. - task: Npm@1
  41. displayName: 'Install npm dependencies'
  42. inputs:
  43. command: install
  44. workingDir: ./apiclient/generated/typescript/axios
  45. ## Publish npm packages
  46. # Unstable
  47. - task: Npm@1
  48. displayName: 'Publish unstable typescript axios client'
  49. condition: startsWith(variables['Build.SourceBranch'], 'refs/heads/master')
  50. inputs:
  51. command: publish
  52. publishRegistry: useFeed
  53. publishFeed: 'jellyfin/unstable'
  54. workingDir: ./apiclient/generated/typescript/axios
  55. # Stable
  56. - task: Npm@1
  57. displayName: 'Publish stable typescript axios client'
  58. condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/v')
  59. inputs:
  60. command: publish
  61. publishRegistry: useExternalRegistry
  62. publishEndpoint: 'jellyfin-bot for NPM'
  63. workingDir: ./apiclient/generated/typescript/axios