# 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 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