-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Ci] Support to trigger a pipeline to download and publish artifacts …
…to storage (#10820) Why I did it Support to trigger a pipeline to download and publish artifacts to storage and container registry. Support to specify the patterns which docker images to upload. How I did it Pass the pipeline information and the artifact information by pipeline parameters to the pipeline which will be triggered a new build. It is to decouple the artifacts generation and the publish logic, how and where the artifacts/docker images will be published, depends on the triggered pipeline. How to verify it
- Loading branch information
1 parent
cd0a060
commit f6a52e3
Showing
2 changed files
with
69 additions
and
1 deletion.
There are no files selected for viewing
This file contains 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
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
# The steps to trigger the pipeline to publish the artifacts | ||
|
||
parameters: | ||
- name: artifactName | ||
type: string | ||
default: "" | ||
- name: publishPrefix | ||
type: string | ||
default: "$(Build.DefinitionName)/$(Build.SourceBranchName)" | ||
|
||
steps: | ||
- script: | | ||
. functions.sh | ||
sonic_version=$(sonic_get_version) | ||
latest_tag=$(git describe --tags --abbrev=0) | ||
docker_tags="$sonic_version $(Build.SourceBranchName)" | ||
if [ "$(Build.SourceBranchName)" == "master" ]; then | ||
docker_tags="$docker_tags latest" | ||
fi | ||
echo "##vso[task.setvariable variable=sonic_version]$sonic_version" | ||
echo "##vso[task.setvariable variable=latest_tag]$latest_tag" | ||
echo "##vso[task.setvariable variable=docker_tags]$docker_tags" | ||
condition: ne(variables['Build.Reason'], 'PullRequest') | ||
displayName: 'Set trigger build variables' | ||
- task: TriggerBuild@4 | ||
condition: ne(variables['Build.Reason'], 'PullRequest') | ||
inputs: | ||
definitionIsInCurrentTeamProject: false | ||
teamProject: internal | ||
tfsServer: $(System.CollectionUri) | ||
buildDefinition: 'publish-artifacts' | ||
queueBuildForUserThatTriggeredBuild: true | ||
ignoreSslCertificateErrors: false | ||
useSameSourceVersion: false | ||
useCustomSourceVersion: false | ||
useSameBranch: false | ||
waitForQueuedBuildsToFinish: false | ||
storeInEnvironmentVariable: true | ||
authenticationMethod: 'Personal Access Token' | ||
password: '$(system.accesstoken)' | ||
enableBuildInQueueCondition: false | ||
dependentOnSuccessfulBuildCondition: false | ||
dependentOnFailedBuildCondition: false | ||
checkbuildsoncurrentbranch: false | ||
failTaskIfConditionsAreNotFulfilled: false | ||
buildParameters: '' | ||
templateParameters: | | ||
pipelineContext: {"buildId":"$(Build.BuildId)", | ||
"pipelineId":"$(System.DefinitionId)", | ||
"project": "$(System.TeamProject)", | ||
"branchName":"$(Build.SourceBranchName)"}, | ||
artifactContext: {"artifactName":"${{ parameters.artifactName }}", | ||
"artifactPatterns":"**/*.bin\n | ||
**/*.swi\n | ||
**/*.raw\n | ||
**/*.img.gz\n | ||
**/*-rpc.gz\n | ||
**/python-saithrift*.deb"}, | ||
publishContext: {"publishPrefix":"${{ parameters.publishPrefix }}", | ||
"keepArtifactName":false, | ||
"dockerImagePatterns":"target/*-rpc.gz", | ||
"dockerTags":"$(docker_tags)", | ||
"version":"$(sonic_version)", | ||
"latestTag":"$(latest_tag)"} |