From cc3db2aa43ee617ed5086976e0354c72feba713c Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Sun, 22 Sep 2019 16:01:29 -0400 Subject: 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 --- .ci/templates/build-mock.yml | 5 +++++ .ci/templates/build-single.yml | 13 ++++++------- .ci/templates/release-download.yml | 13 +++++++++++++ .ci/templates/release-github.yml | 11 +++++++++++ .ci/templates/release-universal.yml | 10 ++++++++++ .ci/yuzu-mainline-step1.yml | 8 ++++++++ .ci/yuzu-mainline-step2.yml | 28 ++++++++++++++++++++++++++++ .ci/yuzu-mainline.yml | 25 ------------------------- 8 files changed, 81 insertions(+), 32 deletions(-) create mode 100644 .ci/templates/build-mock.yml create mode 100644 .ci/templates/release-download.yml create mode 100644 .ci/templates/release-github.yml create mode 100644 .ci/templates/release-universal.yml create mode 100644 .ci/yuzu-mainline-step1.yml create mode 100644 .ci/yuzu-mainline-step2.yml delete mode 100644 .ci/yuzu-mainline.yml (limited to '.ci') diff --git a/.ci/templates/build-mock.yml b/.ci/templates/build-mock.yml new file mode 100644 index 000000000..e7aba93de --- /dev/null +++ b/.ci/templates/build-mock.yml @@ -0,0 +1,5 @@ +steps: + - script: mkdir artifacts || echo 'X' > artifacts/T1.txt + - publish: artifacts + artifact: 'yuzu-$(BuildName)-$(BuildSuffix)' + displayName: 'Upload Artifacts' \ No newline at end of file diff --git a/.ci/templates/build-single.yml b/.ci/templates/build-single.yml index 357731eb9..cd9d1df88 100644 --- a/.ci/templates/build-single.yml +++ b/.ci/templates/build-single.yml @@ -7,13 +7,12 @@ steps: displayName: 'Prepare Environment' inputs: dockerVersion: '17.09.0-ce' -- ${{ if eq(parameters.cache, 'true') }}: - - task: CacheBeta@0 - displayName: 'Cache Build System' - inputs: - key: yuzu-v1-$(BuildName)-$(BuildSuffix)-$(CacheSuffix) - path: $(System.DefaultWorkingDirectory)/ccache - cacheHitVar: CACHE_RESTORED +- task: CacheBeta@0 + displayName: 'Cache Build System' + inputs: + key: yuzu-v1-$(BuildName)-$(BuildSuffix)-$(CacheSuffix) + path: $(System.DefaultWorkingDirectory)/ccache + cacheHitVar: CACHE_RESTORED - script: chmod a+x ./.ci/scripts/$(ScriptFolder)/exec.sh && ./.ci/scripts/$(ScriptFolder)/exec.sh displayName: 'Build' - script: chmod a+x ./.ci/scripts/$(ScriptFolder)/upload.sh && RELEASE_NAME=$(BuildName) ./.ci/scripts/$(ScriptFolder)/upload.sh diff --git a/.ci/templates/release-download.yml b/.ci/templates/release-download.yml new file mode 100644 index 000000000..50ca06bb2 --- /dev/null +++ b/.ci/templates/release-download.yml @@ -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)' \ No newline at end of file diff --git a/.ci/templates/release-github.yml b/.ci/templates/release-github.yml new file mode 100644 index 000000000..39fd47f1c --- /dev/null +++ b/.ci/templates/release-github.yml @@ -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' \ No newline at end of file diff --git a/.ci/templates/release-universal.yml b/.ci/templates/release-universal.yml new file mode 100644 index 000000000..707697007 --- /dev/null +++ b/.ci/templates/release-universal.yml @@ -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' \ No newline at end of file diff --git a/.ci/yuzu-mainline-step1.yml b/.ci/yuzu-mainline-step1.yml new file mode 100644 index 000000000..3fd33d75a --- /dev/null +++ b/.ci/yuzu-mainline-step1.yml @@ -0,0 +1,8 @@ +trigger: +- master + +stages: +- stage: merge + displayName: 'merge' + jobs: + - template: ./templates/merge.yml diff --git a/.ci/yuzu-mainline-step2.yml b/.ci/yuzu-mainline-step2.yml new file mode 100644 index 000000000..fec724d11 --- /dev/null +++ b/.ci/yuzu-mainline-step2.yml @@ -0,0 +1,28 @@ +trigger: +- master + +stages: +- stage: format + displayName: 'format' + jobs: + - job: format + displayName: 'clang' + pool: + vmImage: ubuntu-latest + steps: + - template: ./templates/format-check.yml +- stage: build + dependsOn: format + displayName: 'build' + jobs: + - template: ./templates/build-standard.yml + parameters: + cache: 'true' +- stage: release + displayName: 'Release' + dependsOn: build + jobs: + - job: github + displayName: 'GitHub Release' + steps: + - template: ./templates/release-github.yml \ No newline at end of file diff --git a/.ci/yuzu-mainline.yml b/.ci/yuzu-mainline.yml deleted file mode 100644 index 2930a8564..000000000 --- a/.ci/yuzu-mainline.yml +++ /dev/null @@ -1,25 +0,0 @@ -trigger: -- master - -stages: -- stage: merge - displayName: 'merge' - jobs: - - template: ./templates/merge.yml -- stage: format - dependsOn: merge - displayName: 'format' - jobs: - - job: format - displayName: 'clang' - pool: - vmImage: ubuntu-latest - steps: - - template: ./templates/format-check.yml -- stage: build - displayName: 'build' - dependsOn: format - jobs: - - template: ./templates/build-standard.yml - parameters: - cache: 'true' -- cgit v1.2.3