I had a requirement to automate the CI/CD pipeline of an existing Vue.js project.
What was asked…
- On any merge into the branch “releases/dev
- Run all unit tests
- Build for the development/staging environment
- Copy the files to Azure Blob storage so they can be used as a SPA
The project repo was already in Azure Dev Ops
trigger: - releases/dev pool: vmImage: "ubuntu-latest" steps: - task: NodeTool@0 inputs: versionSpec: "12.x" displayName: "Install Node.js" - script: | npm install npm run test:unit displayName: "npm install" - script: | npm run test:unit displayName: "npm run test:unit" - script: | npm run build:dev displayName: "npm run build:dev" - task: AzureCLI@2 displayName: "Copy files to blob storage" inputs: azureSubscription: 'Faux-Development-ltd' scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: 'az storage blob upload-batch -d \$web --account- name "blobStoreName" -s "dist" --connection-string "DefaultEndpointsProtocol=https;AccountName=xxxxxx;AccountKey=123456789123456789/qwerty/qwertybangbang==;EndpointSuffix=core.windows.net"'
The only sticking points where.
The blob store container is called $web which look like a variable in the shell script so I had to use \$web