ci: Split mainline pipeline and add support for GitHub releases (#2900)

* ci: Add mock build alternative for fast testing

* ci: Always cache build

* ci: Extract steps to download build stage artifacts

* ci: Add template to release to GitHub

* ci: Add template to release to Azure Universal Artifacts

* ci: Split mainline to two pipelines
This commit is contained in:
Zach Hilman 2019-09-22 16:01:29 -04:00 committed by Flame Sage
parent aaec1562f8
commit cc3db2aa43
7 changed files with 62 additions and 13 deletions

View file

@ -0,0 +1,5 @@
steps:
- script: mkdir artifacts || echo 'X' > artifacts/T1.txt
- publish: artifacts
artifact: 'yuzu-$(BuildName)-$(BuildSuffix)'
displayName: 'Upload Artifacts'

View file

@ -7,13 +7,12 @@ steps:
displayName: 'Prepare Environment' displayName: 'Prepare Environment'
inputs: inputs:
dockerVersion: '17.09.0-ce' dockerVersion: '17.09.0-ce'
- ${{ if eq(parameters.cache, 'true') }}: - task: CacheBeta@0
- task: CacheBeta@0 displayName: 'Cache Build System'
displayName: 'Cache Build System' inputs:
inputs: key: yuzu-v1-$(BuildName)-$(BuildSuffix)-$(CacheSuffix)
key: yuzu-v1-$(BuildName)-$(BuildSuffix)-$(CacheSuffix) path: $(System.DefaultWorkingDirectory)/ccache
path: $(System.DefaultWorkingDirectory)/ccache cacheHitVar: CACHE_RESTORED
cacheHitVar: CACHE_RESTORED
- script: chmod a+x ./.ci/scripts/$(ScriptFolder)/exec.sh && ./.ci/scripts/$(ScriptFolder)/exec.sh - script: chmod a+x ./.ci/scripts/$(ScriptFolder)/exec.sh && ./.ci/scripts/$(ScriptFolder)/exec.sh
displayName: 'Build' displayName: 'Build'
- script: chmod a+x ./.ci/scripts/$(ScriptFolder)/upload.sh && RELEASE_NAME=$(BuildName) ./.ci/scripts/$(ScriptFolder)/upload.sh - script: chmod a+x ./.ci/scripts/$(ScriptFolder)/upload.sh && RELEASE_NAME=$(BuildName) ./.ci/scripts/$(ScriptFolder)/upload.sh

View file

@ -0,0 +1,13 @@
steps:
- task: DownloadPipelineArtifact@2
displayName: 'Download Windows Release'
inputs:
artifactName: 'yuzu-$(BuildName)-windows-mingw'
buildType: 'current'
targetPath: '$(Build.ArtifactStagingDirectory)'
- task: DownloadPipelineArtifact@2
displayName: 'Download Linux Release'
inputs:
artifactName: 'yuzu-$(BuildName)-linux'
buildType: 'current'
targetPath: '$(Build.ArtifactStagingDirectory)'

View file

@ -0,0 +1,11 @@
steps:
- template: ./release-download.yml
- task: GitHubRelease@0
inputs:
action: 'create'
title: 'yuzu $(BuildName) #$(Build.BuildId)'
assets: '$(Build.ArtifactStagingDirectory)/*'
gitHubConnection: $(GitHubReleaseConnectionName)
repositoryName: '$(Build.Repository.Name)'
target: '$(Build.SourceVersion)'
tagSource: 'auto'

View file

@ -0,0 +1,10 @@
steps:
- template: ./release-download.yml
- task: UniversalPackages@0
displayName: Publish Artifacts
inputs:
command: publish
publishDirectory: '$(Build.ArtifactStagingDirectory)'
vstsFeedPublish: 'yuzu-$(BuildName)'
vstsFeedPackagePublish: 'main'
packagePublishDescription: 'Yuzu Windows and Linux Executable Packages'

View file

@ -0,0 +1,8 @@
trigger:
- master
stages:
- stage: merge
displayName: 'merge'
jobs:
- template: ./templates/merge.yml

View file

@ -2,12 +2,7 @@ trigger:
- master - master
stages: stages:
- stage: merge
displayName: 'merge'
jobs:
- template: ./templates/merge.yml
- stage: format - stage: format
dependsOn: merge
displayName: 'format' displayName: 'format'
jobs: jobs:
- job: format - job: format
@ -17,9 +12,17 @@ stages:
steps: steps:
- template: ./templates/format-check.yml - template: ./templates/format-check.yml
- stage: build - stage: build
displayName: 'build'
dependsOn: format dependsOn: format
displayName: 'build'
jobs: jobs:
- template: ./templates/build-standard.yml - template: ./templates/build-standard.yml
parameters: parameters:
cache: 'true' cache: 'true'
- stage: release
displayName: 'Release'
dependsOn: build
jobs:
- job: github
displayName: 'GitHub Release'
steps:
- template: ./templates/release-github.yml