mirror of
https://git.proxmox.com/git/libgit2
synced 2025-08-06 16:39:23 +00:00
52 lines
2.0 KiB
YAML
52 lines
2.0 KiB
YAML
# These are the steps used in a container-based build in VSTS.
|
|
steps:
|
|
- ${{ if eq(parameters.qemu, 'true') }}:
|
|
- script: docker run --rm --privileged multiarch/qemu-user-static:register --reset
|
|
displayName: 'Register Docker QEMU'
|
|
|
|
- task: cache@2
|
|
displayName: Cache Docker layers
|
|
inputs:
|
|
key: docker
|
|
path: /tmp/dockercache
|
|
- script: |
|
|
if [ -f /tmp/dockercache/${{parameters.docker.image}}.tar ]; then docker load < /tmp/dockercache/${{parameters.docker.image}}.tar; fi
|
|
displayName: 'Load Docker cache'
|
|
- script: |
|
|
cd $(Build.SourcesDirectory)/azure-pipelines/docker &&
|
|
docker build -t libgit2/${{parameters.docker.image}} --build-arg BASE=${{parameters.docker.base}} -f ${{parameters.docker.image}} . &&
|
|
if [ ! -d /tmp/dockercache ]; then mkdir /tmp/dockercache; fi &&
|
|
docker save libgit2/${{parameters.docker.image}} $(docker history -q libgit2/${{parameters.docker.image}} | grep -v '<missing>') > /tmp/dockercache/${{parameters.docker.image}}.tar
|
|
displayName: 'Build Docker image'
|
|
- task: docker@0
|
|
displayName: Build
|
|
inputs:
|
|
action: 'Run an image'
|
|
imageName: libgit2/${{ parameters.docker.image }}
|
|
volumes: |
|
|
$(Build.SourcesDirectory):/home/libgit2/source
|
|
$(Build.BinariesDirectory):/home/libgit2/build
|
|
envVars: ${{ parameters.environmentVariables }}
|
|
workDir: '/home/libgit2/build'
|
|
containerCommand: '/home/libgit2/source/azure-pipelines/build.sh'
|
|
detached: false
|
|
- task: docker@0
|
|
displayName: Test
|
|
inputs:
|
|
action: 'Run an image'
|
|
imageName: libgit2/${{ parameters.docker.image }}
|
|
volumes: |
|
|
$(Build.SourcesDirectory):/home/libgit2/source
|
|
$(Build.BinariesDirectory):/home/libgit2/build
|
|
envVars: ${{ parameters.environmentVariables }}
|
|
workDir: '/home/libgit2/build'
|
|
containerCommand: '/home/libgit2/source/azure-pipelines/test.sh'
|
|
detached: false
|
|
- task: publishtestresults@2
|
|
displayName: Publish Test Results
|
|
condition: succeededOrFailed()
|
|
inputs:
|
|
testResultsFiles: 'results_*.xml'
|
|
searchFolder: '$(Build.BinariesDirectory)'
|
|
mergeTestResults: true
|