orchard/azure-pipelines.yml
2023-05-24 15:06:54 +01:00

289 lines
9.2 KiB
YAML

# Cider-1 Azure Pipeline Workflow
# Maintained by Cider Devops.
# Don't make changes unless you know what you're doing.
trigger:
branches:
include:
- main
paths:
include:
- src/**/*
exclude:
- azure-pipelines.yml
variables:
COMMIT_URL: "$(Build.Repository.Uri)/commit/$(Build.SourceVersion)"
BUILD_URL: "$(System.CollectionUri)/$(System.TeamProject)/_build/results?buildId=$(Build.BuildId)"
YARN_CACHE_FOLDER: $(Pipeline.Workspace)/.yarn/cache
YARN_ENABLE_IMMUTABLE_INSTALLS: false
jobs:
# Linux Production Build Test
# This job is used to test the production build of the Linux distribution.
# Also tests Pull Requests.
- job: compile_linux
displayName: "Compile Linux Distribution"
pool: Linux
steps:
- task: NodeTool@0
displayName: "Install Node.js"
inputs:
versionSource: "fromFile"
versionFilePath: ".nvmrc"
# - ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
# - task: Cache@2
# inputs:
# key: 'yarn | "$(Agent.OS)" | yarn.lock'
# path: $(YARN_CACHE_FOLDER)
# displayName: Cache yarn
- script: git submodule update --init --recursive --remote
displayName: Init submodules
- script: yarn set version from sources
displayName: "Setup yarn"
# Install dependencies (immutable for non-PR builds)
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
- script: yarn install
displayName: "Install Dependencies"
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
- script: yarn install
displayName: "Install Dependencies"
- script: yarn dist:linux
env: {GH_TOKEN : $(GH_TOKEN)}
displayName: "Compile Distribution"
- task: CopyFiles@2
displayName: "Copy to artifacts staging directory"
inputs:
SourceFolder: 'dist'
Contents: |
*.AppImage
*.deb
*.snap
*.rpm
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
displayName: Upload Artifacts
inputs:
ArtifactName: "Cider-1"
publishLocation: "Container"
- task: GitHubRelease@1
inputs:
gitHubConnection: 'ciderapp'
repositoryName: 'ciderapp/Cider'
action: 'edit'
target: '$(Build.SourceVersion)'
tag: 'v1.6.1'
title: 'Cider Version 1.6.1'
releaseNotesSource: 'inline'
releaseNotesInline: 'Builds from [Azure](https://dev.azure.com/cidercollective/Cider/_build?definitionId=14) CI/CD'
assets: |
$(Build.ArtifactStagingDirectory)/*.exe
$(Build.ArtifactStagingDirectory)/*.deb
$(Build.ArtifactStagingDirectory)/*.AppImage
$(Build.ArtifactStagingDirectory)/*.snap
assetUploadMode: 'replace'
addChangeLog: false
# - task: DownloadBuildArtifacts@1
# inputs:
# buildType: 'current'
# downloadType: 'specific'
# downloadPath: '$(System.ArtifactsDirectory)'
# Windows Production Build Test
# This job is used to test the production build of the Windows distribution.
# Also tests Pull Requests.
- job: compile_windows
displayName: "Compile Windows Distribution"
pool: default
steps:
- task: NodeTool@0
displayName: "Install Node.js"
inputs:
versionSource: "fromFile"
versionFilePath: ".nvmrc"
# - ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
# - task: Cache@2
# inputs:
# key: 'yarn | "$(Agent.OS)" | yarn.lock'
# path: $(YARN_CACHE_FOLDER)
# displayName: Cache yarn
- script: git submodule update --init --recursive --remote
displayName: Init submodules
- script: yarn set version from sources
displayName: "Setup yarn"
# Install dependencies (immutable for non-PR builds)
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
- script: yarn install
displayName: "Install Dependencies"
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
- script: yarn install
displayName: "Install Dependencies"
- script: yarn dist:win
env: {GH_TOKEN : $(GH_TOKEN)}
displayName: "Compile Distribution"
- task: CopyFiles@2
displayName: "Copy to artifacts staging directory"
inputs:
SourceFolder: "dist"
Contents: "*.exe"
targetFolder: $(Build.ArtifactStagingDirectory)
- task: GitHubRelease@1
inputs:
gitHubConnection: 'ciderapp'
repositoryName: 'ciderapp/Cider'
action: 'edit'
target: '$(Build.SourceVersion)'
tag: 'v1.6.1'
title: 'Cider Version 1.6.1'
releaseNotesSource: 'inline'
releaseNotesInline: 'Builds from [Azure](https://dev.azure.com/cidercollective/Cider/_build?definitionId=14) CI/CD'
assets: |
$(Build.ArtifactStagingDirectory)/*.exe
$(Build.ArtifactStagingDirectory)/*.deb
$(Build.ArtifactStagingDirectory)/*.AppImage
$(Build.ArtifactStagingDirectory)/*.snap
assetUploadMode: 'replace'
addChangeLog: false
- task: PublishBuildArtifacts@1
displayName: Upload Artifacts
inputs:
ArtifactName: "Cider-1"
publishLocation: "Container"
- job: compile_winget
displayName: "Compile for Winget"
pool: default
steps:
- task: NodeTool@0
displayName: "Install Node.js"
inputs:
versionSource: "fromFile"
versionFilePath: ".nvmrc"
- script: git submodule update --init --recursive --remote
displayName: Init submodules
- script: yarn set version from sources
displayName: "Setup yarn"
- script: yarn install
displayName: "Install Dependencies"
- script: yarn run winget
env: {GH_TOKEN : $(GH_TOKEN)}
displayName: "Compile Distribution"
- task: CopyFiles@2
displayName: "Copy to artifacts staging directory"
inputs:
SourceFolder: "dist"
Contents: "*.exe"
targetFolder: $(Build.ArtifactStagingDirectory)
- task: GitHubRelease@1
inputs:
gitHubConnection: 'ciderapp'
repositoryName: 'ciderapp/Cider'
action: 'edit'
target: '$(Build.SourceVersion)'
tag: 'v1.6.1'
title: 'Cider Version 1.6.1'
releaseNotesSource: 'inline'
releaseNotesInline: 'Builds from [Azure](https://dev.azure.com/cidercollective/Cider/_build?definitionId=14) CI/CD'
assets: |
$(Build.ArtifactStagingDirectory)/*.exe
$(Build.ArtifactStagingDirectory)/*.deb
$(Build.ArtifactStagingDirectory)/*.AppImage
$(Build.ArtifactStagingDirectory)/*.snap
assetUploadMode: 'replace'
addChangeLog: false
- task: PublishBuildArtifacts@1
displayName: Upload Artifacts
inputs:
ArtifactName: "Cider-1"
publishLocation: "Container"
- job: compile_macos
displayName: "Compile MacOS Distribution"
pool: Macos
steps:
- task: NodeTool@0
displayName: "Install Node.js"
inputs:
versionSource: "fromFile"
versionFilePath: ".nvmrc"
- script: git submodule update --init --recursive --remote
displayName: Init submodules
- script: yarn set version from sources
displayName: "Setup yarn"
# Install dependencies (immutable for non-PR builds)
- ${{ if ne(variables['Build.Reason'], 'PullRequest') }}:
- script: yarn install
displayName: "Install Dependencies"
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
- script: yarn install
displayName: "Install Dependencies"
- script: yarn dist -m --publish=never
env:
CSC_LINK: $(CSC_LINK)
CSC_KEY_PASSWORD: $(CSC_KEY_PASS)
APPLEID: $(APPLEID)
APPLEIDPASS: $(APPLEIDPASS)
GH_TOKEN: $(GH_TOKEN)
displayName: "Compile Distribution"
- task: CopyFiles@2
displayName: "Copy to artifacts staging directory"
inputs:
SourceFolder: 'dist'
Contents: |
*.dmg
*.pkg
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: PublishBuildArtifacts@1
displayName: Upload Artifacts
inputs:
ArtifactName: "Cider-1"
publishLocation: "Container"
- task: GitHubRelease@1
inputs:
gitHubConnection: 'ciderapp'
repositoryName: 'ciderapp/Cider'
action: 'edit'
target: '$(Build.SourceVersion)'
tag: 'v1.6.1'
title: 'Cider Version 1.6.1'
releaseNotesSource: 'inline'
releaseNotesInline: 'Builds from [Azure](https://dev.azure.com/cidercollective/Cider/_build?definitionId=14) CI/CD'
assets: |
$(Build.ArtifactStagingDirectory)/*.pkg
$(Build.ArtifactStagingDirectory)/*.dmg
assetUploadMode: 'replace'
addChangeLog: false