forked from shogun-toolbox/shogun
-
Notifications
You must be signed in to change notification settings - Fork 0
/
download-extract.yml
74 lines (68 loc) · 3.01 KB
/
download-extract.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# NOTE: downloadPath and destinationFolder should not be the same!
# as ExtractFiles will create destinationFolder that will result
# in deleting anything in it, including the archive if downloadPath
# is the same as destinationFolder
parameters:
artifactName: ''
downloadPath: ''
name: ''
archiveFilePatterns: ''
destinationFolder: ''
specificBuildWithTriggering: false
steps:
- ${{ if eq(parameters.specificBuildWithTriggering, 'true') }}:
- task: DownloadBuildArtifacts@0
displayName: ${{ format('Download {0} archive', parameters.name) }}
continueOnError: true
inputs:
specificBuildWithTriggering: true
artifactName: ${{ parameters.artifactName }}
downloadPath: ${{ parameters.downloadPath }}
- ${{ if and(ne(parameters.specificBuildWithTriggering, 'true'), ne(variables['Build.Reason'], 'PullRequest')) }}:
- task: PythonScript@0
displayName: ${{ format('Download {0} archive', parameters.name) }}
continueOnError: true
inputs:
scriptSource: 'filePath'
scriptPath: '.ci/get_latest_artifact.py'
arguments: '$(Build.SourceBranchName) ${{ parameters.artifactName }}'
workingDirectory: ${{ parameters.downloadPath }}
failOnStderr: true
# TODO: change back to DownloadBuildArtifacts task when this issue is fixed
# https://github.com/MicrosoftDocs/vsts-docs/issues/2889
- ${{ if and(ne(parameters.specificBuildWithTriggering, 'true'), eq(variables['Build.Reason'], 'PullRequest')) }}:
- task: PythonScript@0
displayName: ${{ format('Download {0} archive', parameters.name) }}
continueOnError: true
inputs:
scriptSource: 'filePath'
scriptPath: '.ci/get_latest_artifact.py'
arguments: '$(System.PullRequest.TargetBranch) ${{ parameters.artifactName }}'
workingDirectory: ${{ parameters.downloadPath }}
failOnStderr: true
# Windows
- powershell: |
$ARTIFACT_DIR = ${{ format('"{0}\{1}"', parameters.downloadPath, parameters.artifactName) }}
if (Test-Path -Path $ARTIFACT_DIR) {
Write-Host "##vso[task.setVariable variable=ARTIFACT_EXISTS;]true"
} else {
Write-Host "##vso[task.setVariable variable=ARTIFACT_EXISTS;]false"
}
displayName: ${{ format('Checking {0} download task status', parameters.name) }}
condition: eq(variables['Agent.OS'], 'Windows_NT')
# Linux and macOS
- bash: |
if [ -d ${{ format('{0}/{1}', parameters.downloadPath, parameters.artifactName) }} ]; then
echo "##vso[task.setVariable variable=ARTIFACT_EXISTS]true"
else
echo "##vso[task.setVariable variable=ARTIFACT_EXISTS]false"
fi
displayName: ${{ format('Checking {0} download task status', parameters.name) }}
condition: ne(variables['Agent.OS'], 'Windows_NT')
- task: ExtractFiles@1
displayName: ${{ format('Extract {0} archive', parameters.name) }}
condition: eq(variables.ARTIFACT_EXISTS, 'true')
inputs:
archiveFilePatterns: ${{ format('{0}/{1}/*.tar*', parameters.downloadPath, parameters.artifactName) }}
destinationFolder: ${{ parameters.destinationFolder }}
cleanDestinationFolder: true