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