Last active
September 30, 2020 14:57
-
-
Save mpetuska/fd7de76341c90ff4c0a2f1415e15eaa7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
parameters: | |
- name: workingDirectory | |
default: . | |
type: string | |
- name: dockerGroup | |
default: '' | |
- name: tagLatest | |
default: true | |
- name: bundleDir | |
default: build/ | |
- name: bundleName | |
default: '' | |
- name: dockerBuildArgs | |
type: object | |
default: {} | |
steps: | |
- ${{ if ne(parameters.bundleName, '') }}: | |
- task: DownloadPipelineArtifact@2 | |
inputs: | |
artifact: ${{parameters.bundleName}} | |
path: $(Build.SourcesDirectory)/${{parameters.workingDirectory}}/${{parameters.bundleDir}} | |
- ${{ each pair in parameters.dockerBuildArgs }}: | |
- bash: echo "##vso[task.setVariable variable=DOCKER_BUILD_ARGS]$(DOCKER_BUILD_ARGS) --build-arg ${{pair.key}}='${{pair.value}}'" | |
displayName: Build Arg - ${{pair.key}} | |
workingDirectory: ${{parameters.workingDirectory}} | |
- template: ./dockerTagFromRepo.template.yml | |
parameters: | |
dockerGroup: ${{parameters.dockerGroup}} | |
- bash: docker build -t $(dockerImageTag) $(DOCKER_BUILD_ARGS) . | |
displayName: Docker Build | |
workingDirectory: ${{parameters.workingDirectory}} | |
- bash: | | |
mkdir -p $(System.DefaultWorkingDirectory)/DockerBundle | |
printf '%s' "$(dockerImageRepository)" > $(System.DefaultWorkingDirectory)/DockerBundle/repository | |
printf '%s' "$(Build.BuildNumber)" > $(System.DefaultWorkingDirectory)/DockerBundle/tag | |
displayName: Prepare DockerBundle | |
- publish: $(System.DefaultWorkingDirectory)/${{parameters.workingDirectory}}/DockerBundle | |
artifact: DockerBundle | |
displayName: Publish DockerBundle | |
- ${{if eq(parameters.tagLatest, true)}}: | |
- bash: docker image tag $(dockerImageTag) $(dockerImageRepository):latest | |
displayName: Tag as 'latest' |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
parameters: | |
- name: dockerGroup | |
default: '' | |
- name: repoVariable | |
default: dockerImageRepository | |
- name: tagVariable | |
default: dockerImageTag | |
steps: | |
- bash: | | |
branch_lowercases=$(echo $(Build.SourceBranch) | tr '[:upper:]' '[:lower:]' | tr -d - | tr -d _) | |
branch_ref=$branch_lowercases | |
prefix="refs/heads/" | |
removed_prefix=${branch_ref#"$prefix"} | |
echo "lower cases $branch_lowercases" | |
echo "##vso[task.setvariable variable=branch;isOutput=true]$removed_prefix" | |
displayName: 'Remove prefix' | |
name: removed_prefix | |
- bash: | | |
echo "repository name: $(Build.Repository.Name)" | |
repository_name=$(echo $(Build.Repository.Name) | tr '[:upper:]' '[:lower:]') | |
repo_name=$repository_name | |
prefix="mycompany/" | |
fixed_repo_name=${repo_name#"$prefix"} | |
echo "fixed repository name: $fixed_repo_name" | |
echo "##vso[task.setvariable variable=repo;isOutput=true]$fixed_repo_name" | |
echo "##vso[task.setvariable variable=dockerGroup]" | |
displayName: 'Fix repository name' | |
name: fixed_repo_name | |
- ${{ if ne(parameters.dockerGroup, '') }}: | |
- bash: echo "##vso[task.setvariable variable=dockerGroup]${{parameters.dockerGroup}}/" | |
displayName: Prepare Docker Group | |
- bash: echo "##vso[task.setVariable variable=${{ parameters.repoVariable }}]mycompany-docker-dev.jfrog.io/$(dockerGroup)$(fixed_repo_name.repo)/$(removed_prefix.branch)" | |
displayName: Push Image Repository Variable [${{ parameters.repoVariable }}] | |
- bash: echo "##vso[task.setVariable variable=${{ parameters.tagVariable }}]$(${{ parameters.repoVariable }}):$(build.buildNumber)" | |
displayName: Push Image Tag Variable [${{ parameters.tagVariable }}] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment