# 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/**/* - 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 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-2" # publishLocation: "Container" # - 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: 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: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) - job: compile_winget displayName: "Compile for Winget" pool: Linux 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) - job: upload_files dependsOn: - compile_linux - compile_windows - compile_winget pool: Linux steps: - task: GitHubRelease@1 inputs: gitHubConnection: 'ciderapp' repositoryName: 'ciderapp/Cider' action: 'create' target: '$(Build.SourceVersion)' tagSource: 'userSpecifiedTag' tag: 'v1.6.1' title: 'Cider Version 1.6.1' releaseNotesSource: 'inline' releaseNotesInline: 'Test build from azure CI' assets: '$(Build.ArtifactStagingDirectory)/*.*' addChangeLog: false