diff --git a/changelogs/windows.json b/changelogs/windows.json new file mode 100644 index 0000000..904db7e --- /dev/null +++ b/changelogs/windows.json @@ -0,0 +1,13 @@ +{ + "appMetadata": + { + "en-US": + { + "releaseNotes": "" + }, + "ru-RU": + { + "releaseNotes": "" + } + } +} \ No newline at end of file diff --git a/changelogs/windows.txt b/changelogs/windows.txt deleted file mode 100644 index e69de29..0000000 diff --git a/azure-pipelines.yml b/pipelines/android-release.yml similarity index 78% rename from azure-pipelines.yml rename to pipelines/android-release.yml index 5ccaa4b..7ef100e 100644 --- a/azure-pipelines.yml +++ b/pipelines/android-release.yml @@ -1,10 +1,14 @@ # Xamarin.Android -# Build a Xamarin.Android project. -# Add steps that test, sign, and distribute an app, save build artifacts, and more: -# https://docs.microsoft.com/azure/devops/pipelines/languages/xamarin trigger: -- master + branches: + include: + - master + paths: + exclude: + - /* + include: + - changelogs/android.xml pool: vmImage: 'windows-latest' @@ -22,13 +26,6 @@ steps: inputs: restoreSolution: '**/*.sln' -- task: ResharperCli@2 - displayName: 'RESharper CLI Code Analyzer' - inputs: - solutionOrProjectPath: 'GUT.Schedule/GUT.Schedule.sln' - failBuildLevelSelector: 'Error' - failBuildOnCodeIssues: false - - task: PowerShell@2 displayName: 'Update version number' inputs: @@ -36,12 +33,12 @@ steps: script: | (Get-Content AndroidManifest.xml -encoding UTF8 | Out-String) -replace '(?<=\bandroid:versionCode=")[^"]*', $(Build.BuildId) | set-content AndroidManifest.xml -encoding UTF8 (Get-Content AndroidManifest.xml -encoding UTF8 | Out-String) -replace '(?<=\bandroid:versionName=")[^"]*', $(Build.BuildNumber) | set-content AndroidManifest.xml -encoding UTF8 - workingDirectory: '$(Build.SourcesDirectory)\GUT.Schedule\GUT.Schedule\Properties' + workingDirectory: '$(Build.SourcesDirectory)\GUT.Schedule\GUTSchedule.Droid\Properties' - task: XamarinAndroid@1 displayName: 'Build Solution (AppBundle)' inputs: - projectFile: '**/**.csproj' + projectFile: '**/**.Droid.csproj' outputDirectory: '$(outputDirectory)' configuration: '$(buildConfiguration)' msbuildVersionOption: 'latest' @@ -52,7 +49,7 @@ steps: - task: XamarinAndroid@1 displayName: 'Build Solution (APK)' inputs: - projectFile: '**/**.csproj' + projectFile: '**/**.Droid.csproj' outputDirectory: '$(outputDirectory)' configuration: 'Release (APK)' msbuildVersionOption: 'latest' @@ -70,8 +67,8 @@ steps: - task: CopyFiles@2 displayName: 'Copy changelog to output' inputs: - SourceFolder: '$(Build.SourcesDirectory)' - Contents: 'changelog.md' + SourceFolder: '$(Build.SourcesDirectory)/changelogs' + Contents: 'android.xml' TargetFolder: '$(outputDirectory)' - task: PowerShell@2 @@ -85,5 +82,5 @@ steps: displayName: 'Drop Artifact' inputs: PathtoPublish: '$(outputDirectory)' - ArtifactName: 'bundle' + ArtifactName: 'AndroidBundle' publishLocation: 'Container' \ No newline at end of file diff --git a/pipelines/validation.yml b/pipelines/validation.yml new file mode 100644 index 0000000..f19c9d0 --- /dev/null +++ b/pipelines/validation.yml @@ -0,0 +1,49 @@ +# Xamarin.Android +# Build a Xamarin.Android project. +# Add steps that test, sign, and distribute an app, save build artifacts, and more: +# https://docs.microsoft.com/azure/devops/pipelines/languages/xamarin + +trigger: +- master + +pool: + vmImage: 'windows-latest' + +variables: + buildConfiguration: 'Release' + outputDirectory: '$(build.binariesDirectory)/$(buildConfiguration)' + buildPlatform: 'x86|x64|ARM' + +steps: +- task: NuGetToolInstaller@1 + displayName: 'Install NuGet Tool' + +- task: NuGetCommand@2 + displayName: 'Restore Solution' + inputs: + restoreSolution: '**/*.sln' + +- task: ResharperCli@2 + displayName: 'RESharper CLI Code Analyzer' + inputs: + solutionOrProjectPath: 'GUT.Schedule/GUT.Schedule.sln' + failBuildLevelSelector: 'Error' + failBuildOnCodeIssues: false + +- task: XamarinAndroid@1 + displayName: 'Build Android' + inputs: + projectFile: '**/**.Droid.csproj' + outputDirectory: '$(outputDirectory)' + configuration: '$(buildConfiguration)' + msbuildVersionOption: 'latest' + msbuildArchitectureOption: '$(buildPlatform)' + jdkOption: 'JDKVersion' + +- task: VSBuild@1 + displayName: 'Build UWP' + inputs: + platform: '$(buildPlatform)' + solution: '**/**.UWP.csproj' + configuration: '$(buildConfiguration)' + msbuildArgs: '/p:AppxBundlePlatforms="$(buildPlatform)" /p:AppxPackageDir="$(outputDirectory)" /p:AppxBundle=Always /p:UapAppxPackageBuildMode=StoreUpload' \ No newline at end of file diff --git a/pipelines/windows-release.yml b/pipelines/windows-release.yml new file mode 100644 index 0000000..55a8599 --- /dev/null +++ b/pipelines/windows-release.yml @@ -0,0 +1,72 @@ +# Universal Windows Platform + +trigger: + branches: + include: + - master + paths: + exclude: + - /* + include: + - changelogs/windows.json + +pool: + vmImage: 'windows-latest' + +variables: + buildConfiguration: 'Release' + outputDirectory: '$(build.binariesDirectory)/$(buildConfiguration)' + buildPlatform: 'x86|x64|ARM' + +steps: +- task: NuGetToolInstaller@1 + displayName: 'Install NuGet Tool' + +- task: NuGetCommand@2 + displayName: 'Restore Solution' + inputs: + restoreSolution: '**/*.sln' + +- task: PowerShell@2 + displayName: 'Update version number' + inputs: + targetType: 'inline' + script: | + (Get-Content Package.appxmanifest -encoding UTF8 | Out-String) -replace '(?<=\bVersion=")[^"]*', "$(Get-Date -Format "yyyy.Mdd").buildId.$($(Build.BuildNumber).Split('.')[1])" | set-content Package.appxmanifest -encoding UTF8 + workingDirectory: '$(Build.SourcesDirectory)\GUT.Schedule\GUTSchedule.UWP' + +- task: DownloadSecureFile@1 + name: cert + displayName: 'Downloading Store association data file' + inputs: + secureFile: 'PackageStoreAssociation.xml' + +- task: CopyFiles@2 + displayName: 'Copy Store association data' + inputs: + Contents: '$(cert.secureFilePath)' + TargetFolder: '$(Build.Repository.LocalPath)/GUTSchedule/GUTSchedule.UWP' + +- task: VSBuild@1 + inputs: + platform: 'x86' + solution: '**/**.UWP.csproj' + configuration: '$(buildConfiguration)' + msbuildArgs: '/p:AppxBundlePlatforms="$(buildPlatform)" + /p:AppxPackageDir="$(outputDirectory)" + /p:AppxBundle=Always + /p:UapAppxPackageBuildMode=StoreUpload' + +- task: CopyFiles@2 + displayName: 'Copy changelog to output' + inputs: + SourceFolder: '$(Build.SourcesDirectory)/changelogs' + Contents: 'windows.txt' + TargetFolder: '$(outputDirectory)' + +- task: PublishBuildArtifacts@1 + displayName: 'Drop Artifact' + inputs: + PathtoPublish: '$(outputDirectory)' + ArtifactName: 'WindowsBundle' + publishLocation: 'Container' \ No newline at end of file