K
I advice you to learn the basis with generic technologies and then use Azure.
The basic and modern devops flow
Devops admin configure the webhook or trigger to connect the git server with the ci,cd,devops sever
Devops admin configure the job with steps required to build the application.
Developer push some source code (java, php, c#, nodejs, etc)
Your git platform/server (bitbucket, gitlab, github, azure, etc) detects this event and perform an http post request to your webhook url (preconfigured) sending it a json payload with important information related to detected event.
You ci,cd,devops,etc server receives the http post request and using a json parser extract some important or common values used in devops automation like : repository name, branch name, commit author, commit message, etc
Your ci,cd,devops,etc server launchs a preconfigured job. At this point you could start, launch or invoke any technology. (java, php, c#, nodejs, etc) required to build the application
More details here:
https://jrichardsz.github.io/devops/devops-with-git-and-jenkins-using-webhooks
https://jrichardsz.github.io/devops/configure-webhooks-in-github-bitbucket-gitlab
Devops flow with open source
git server: github, bitbucket, gitlab, etc
ci,cd,devops server: jenkins, Harness CI,etc. Check https://harness.io/blog/continuous-delivery/best-jenkins-alternatives/ and https://devops.com/11-open-source-devops-tools-we-love-for-2021/
Devops flow with Azure
git server: Azure Repos: https://azure.microsoft.com/en-us/services/devops/repos/
ci,cd,devops server: Azure Devops: https://azure.microsoft.com/en-us/services/devops/ Azure Pipelines: https://azure.microsoft.com/en-us/services/devops/pipelines/
Steps
Devops admin configure the pipeline trigger to connect the azure repos with the azure devops/pipeline sever: https://docs.microsoft.com/en-us/azure/devops/pipelines/repos/azure-repos-git?view=azure-devops&tabs=yaml#ci-triggers
Devops admin configure the azure-pipeline with steps required to build the application: https://github.com/bdellegrazie/vue-hello-world/blob/master/azure-pipelines.yml
Developer push some source code (java, php, c#, nodejs, etc)
Azure repos detects this event and perform an http post request to Azure Devops sending it a json payload with important information related to detected event.
Azure Devops server receives the http post request and starts the interpretation of azure-pipeline.yml
Azure Devops server launches all the steps preconfigured in the azure pipeline, in your case: npm install, npm run build and npm run start
Docker
I advice you Docker to skip the azure-pipeline.yml creation. With docker you app will be deployable on any server (gcp,aws,digital ocena, azure, bare metal, etc) in the galaxy. With azure-pipeline.yml just on Azure. Check this:
https://stackoverflow.com/questions/60604539/how-to-use-docker-in-the-development-phase-of-a-devops-life-cycle/60780840#60780840
Kubernetes
If you achieve the previous steps, you could start the use of kubernetes
Enterprises environments
If your company has the recommended environments like: staging, testing, uat, pre-prod, etc you will need a configuration management. Check this:
https://stackoverflow.com/questions/54220775/how-to-use-variable-substitution-in-frontend-js-applications-like-backend-applic/54271114#54271114