Distributed cache * cache deleteKey now uses an options object instead of a lonely argument variable fuzzy * merge * remove debug logs and cleanup * cleanup * add fault handling * add fault handling * add pid when logging redis client creation * add identifier when logging redis client creation * cleanup * feat: add redis-api as it's own app * feature: use http wrapper for redis * feat: add the possibility to fallback to unstable_cache * Add error handling if redis cache is unresponsive * add logging for unstable_cache * merge * don't cache errors * fix: metadatabase on branchdeploys * Handle when /en/destinations throws add ErrorBoundary * Add sentry-logging when ErrorBoundary catches exception * Fix error handling for distributed cache * cleanup code * Added Application Insights back * Update generateApiKeys script and remove duplicate * Merge branch 'feature/redis' of bitbucket.org:scandic-swap/web into feature/redis * merge Approved-by: Linus Flood
104 lines
3.7 KiB
YAML
104 lines
3.7 KiB
YAML
# Docker
|
|
# Build a Docker image
|
|
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
|
|
name: 1.0.0-$(SourceBranchName)-$(Rev:r)
|
|
|
|
trigger:
|
|
- main
|
|
|
|
parameters:
|
|
- name: forcePush
|
|
displayName: Force push
|
|
type: boolean
|
|
default: false
|
|
|
|
resources:
|
|
- repo: self
|
|
variables:
|
|
tag: "$(Build.BuildNumber)"
|
|
imageName: "redis-api"
|
|
isMaster: $[eq(variables['Build.SourceBranchName'], 'master')]
|
|
shouldPush: $[or(eq(${{parameters.forcePush}}, True), eq(variables['isMaster'], True))]
|
|
tags: |
|
|
|
|
stages:
|
|
- stage: Build
|
|
displayName: Set version
|
|
jobs:
|
|
- job: CreateArtifact
|
|
displayName: Create version artifact
|
|
steps:
|
|
- task: Bash@3
|
|
displayName: Write buildnumber
|
|
inputs:
|
|
targetType: "inline"
|
|
script: |
|
|
echo '$(Build.BuildNumber)' > $(Pipeline.Workspace)/.version
|
|
|
|
- task: PublishPipelineArtifact@1
|
|
inputs:
|
|
targetPath: "$(Pipeline.Workspace)/.version"
|
|
artifact: "Version"
|
|
publishLocation: "pipeline"
|
|
- task: Bash@3
|
|
displayName: Add tag main-latest if main branch
|
|
inputs:
|
|
targetType: "inline"
|
|
script: |
|
|
localTags = $(tag)
|
|
localTags += "\nlatest"
|
|
if [ $[isMaster] ]; then
|
|
localTags += "\nlatest-main"
|
|
echo -e "##vso[task.setvariable variable=tags;]$localTags"
|
|
fi
|
|
echo -e $localTags
|
|
|
|
- job: Build
|
|
displayName: Build
|
|
pool:
|
|
vmImage: ubuntu-latest
|
|
steps:
|
|
- task: Bash@3
|
|
inputs:
|
|
targetType: "inline"
|
|
script: |
|
|
echo "VERSION=$(tag)" >> .env.production
|
|
echo "ShouldPush=$(shouldPush)"
|
|
echo "ForcePush=${{ parameters.forcePush }}"
|
|
echo "isMaster=$(isMaster)"
|
|
|
|
- task: AzureCLI@2
|
|
displayName: Login to ACR
|
|
inputs:
|
|
azureSubscription: "mi-devops"
|
|
scriptType: "bash"
|
|
scriptLocation: "inlineScript"
|
|
workingDirectory: "$(build.sourcesDirectory)"
|
|
inlineScript: az acr login --name acrscandicfrontend
|
|
|
|
- task: AzureCLI@2
|
|
displayName: Build and push to ACR
|
|
inputs:
|
|
azureSubscription: "mi-devops"
|
|
scriptType: "bash"
|
|
scriptLocation: "inlineScript"
|
|
workingDirectory: "$(build.sourcesDirectory)"
|
|
inlineScript: |
|
|
if [ "$(shouldPush)" != "True" ]; then
|
|
echo "Not pushing to ACR"
|
|
noPush="--no-push"
|
|
else
|
|
echo "Pushing to ACR"
|
|
noPush=""
|
|
fi
|
|
|
|
echo "isMaster: $(isMaster)"
|
|
|
|
if [ "$(isMaster)" == "True" ]; then
|
|
echo "Building with latest tag"
|
|
az acr build . --image $(imageName):latest -r acrscandicfrontend $noPush
|
|
fi
|
|
|
|
echo "Building with $(tag) tag"
|
|
az acr build . --image $(imageName):$(tag) -r acrscandicfrontend $noPush
|