275 lines
8.7 KiB
YAML
275 lines
8.7 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: 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
|
|
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.2'
|
|
title: 'Cider Version 1.6.2'
|
|
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: 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.2'
|
|
title: 'Cider Version 1.6.2'
|
|
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: 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.2'
|
|
title: 'Cider Version 1.6.2'
|
|
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: 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.2'
|
|
title: 'Cider Version 1.6.2'
|
|
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
|
|
|
|
|
|
|