Browse Source

release pipeline for winx64

flabbet 4 years ago
parent
commit
c6885b6a81

+ 2 - 0
.gitignore

@@ -330,3 +330,5 @@ ASALocalRun/
 .mfractor/
 
 PixiEditor/Properties/
+
+.vscode/

+ 6 - 6
Installer/installer-setup-x64-light.iss

@@ -2,7 +2,7 @@
 ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
 
 #define MyAppName "PixiEditor"
-#define MyAppVersion GetFileVersion("E:\Builds\PixiEditor\x64\PixiEditor.exe")     ;Not perfect solution, it's enviroment dependend
+#define MyAppVersion GetFileVersion("..\Builds\PixiEditor-x64-light\PixiEditor.exe")     ;Not perfect solution, it's enviroment dependend
 #define MyAppPublisher "PixiEditor"
 #define MyAppURL "https://github.com/PixiEditor/PixiEditor"
 #define MyAppExeName "PixiEditor.exe"
@@ -24,12 +24,12 @@ DefaultDirName={autopf}\{#MyAppName}
 DisableProgramGroupPage=yes
 ; The [Icons] "quicklaunchicon" entry uses {userappdata} but its [Tasks] entry has a proper IsAdminInstallMode Check.
 UsedUserAreasWarning=no
-LicenseFile=E:\Git\PixiEditor\LICENSE
+LicenseFile=..\LICENSE
 ; Uncomment the following line to run in non administrative install mode (install for current user only.)
 ;PrivilegesRequired=lowest
-OutputDir=E:\Builds\PixiEditor
+OutputDir=Assets\PixiEditor-{#TargetPlatform}
 OutputBaseFilename=PixiEditor-setup-{#TargetPlatform}
-SetupIconFile=E:\Git\PixiEditor\icon.ico
+SetupIconFile=..\icon.ico
 Compression=lzma
 SolidCompression=yes
 WizardStyle=modern
@@ -43,8 +43,8 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
 Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode
 
 [Files]
-Source: "E:\Builds\PixiEditor\{#TargetPlatform}\PixiEditor.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "E:\Builds\PixiEditor\{#TargetPlatform}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "..\Builds\PixiEditor-{#TargetPlatform}\PixiEditor.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "..\Builds\PixiEditor-{#TargetPlatform}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
 ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
 [Icons]

+ 6 - 6
Installer/installer-setup-x64.iss

@@ -2,7 +2,7 @@
 ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
 
 #define MyAppName "PixiEditor"
-#define MyAppVersion GetFileVersion("E:\Builds\PixiEditor\x64\PixiEditor.exe")     ;Not perfect solution, it's enviroment dependend
+#define MyAppVersion GetFileVersion("..\Builds\PixiEditor-x64\PixiEditor.exe")     ;Not perfect solution, it's enviroment dependend
 #define MyAppPublisher "PixiEditor"
 #define MyAppURL "https://github.com/PixiEditor/PixiEditor"
 #define MyAppExeName "PixiEditor.exe"
@@ -24,12 +24,12 @@ DefaultDirName={autopf}\{#MyAppName}
 DisableProgramGroupPage=yes
 ; The [Icons] "quicklaunchicon" entry uses {userappdata} but its [Tasks] entry has a proper IsAdminInstallMode Check.
 UsedUserAreasWarning=no
-LicenseFile=E:\Git\PixiEditor\LICENSE
+LicenseFile=..\LICENSE
 ; Uncomment the following line to run in non administrative install mode (install for current user only.)
 ;PrivilegesRequired=lowest
-OutputDir=E:\Builds\PixiEditor
+OutputDir=Assets\PixiEditor-{#TargetPlatform}
 OutputBaseFilename=PixiEditor-setup-{#TargetPlatform}
-SetupIconFile=E:\Git\PixiEditor\icon.ico
+SetupIconFile=..\icon.ico
 Compression=lzma
 SolidCompression=yes
 WizardStyle=modern
@@ -43,8 +43,8 @@ Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{
 Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode
 
 [Files]
-Source: "E:\Builds\PixiEditor\{#TargetPlatform}\PixiEditor.exe"; DestDir: "{app}"; Flags: ignoreversion
-Source: "E:\Builds\PixiEditor\{#TargetPlatform}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "..\Builds\PixiEditor-{#TargetPlatform}\PixiEditor.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "..\Builds\PixiEditor-{#TargetPlatform}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
 ; NOTE: Don't use "Flags: ignoreversion" on any shared system files
 
 [Icons]

+ 4 - 0
PixiEditor.UpdateInstaller/PixiEditor.UpdateInstaller.csproj

@@ -10,6 +10,10 @@
     <None Remove="Images\PixiEditorLogo.png" />
   </ItemGroup>
 
+  <ItemGroup>
+    <PackageReference Include="Tools.InnoSetup" Version="6.0.5" />
+  </ItemGroup>
+
   <ItemGroup>
     <ProjectReference Include="..\PixiEditor.UpdateModule\PixiEditor.UpdateModule.csproj" />
   </ItemGroup>

+ 87 - 0
windows-x64-release.yml

@@ -0,0 +1,87 @@
+# .NET Desktop
+# Build and run tests for .NET Desktop or Windows classic desktop solutions.
+# Add steps that publish symbols, save build artifacts, and more:
+# https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net
+
+trigger:
+- master
+
+pool:
+  vmImage: 'windows-latest'
+
+variables:
+  solution: '**/*.sln'
+  buildPlatform: 'Any CPU'
+  buildConfiguration: 'Release'
+
+steps:
+- task: NuGetToolInstaller@1
+
+- task: NuGetCommand@2
+  inputs:
+    restoreSolution: '$(solution)'
+
+- task: VSBuild@1
+  inputs:
+    solution: '$(solution)'
+    platform: '$(buildPlatform)'
+    configuration: '$(buildConfiguration)'
+
+- task: DotNetCoreCLI@2
+  displayName: "Publish PixiEditor.UpdateInstaller"
+  inputs:
+    command: 'publish'
+    publishWebProjects: false
+    projects: '**/PixiEditor.UpdateInstaller.csproj'
+    arguments: '-o "UpdateInstaller" -r "win-x64" --self-contained=false -p:PublishSingleFile=true -c Release'
+    zipAfterPublish: false
+
+- task: DotNetCoreCLI@2
+  inputs:
+    command: 'publish'
+    publishWebProjects: false
+    projects: '**/PixiEditor.csproj'
+    arguments: '-o "Builds\PixiEditor-x64" --self-contained=true -r "win-x64" -c Release'
+    zipAfterPublish: false
+
+- task: CopyFiles@2
+  inputs:
+    SourceFolder: 'UpdateInstaller'
+    Contents: '**'
+    TargetFolder: 'Builds/PixiEditor-x64'
+
+- task: PowerShell@2
+  inputs:
+    targetType: 'inline'
+    script: '& "$env:userprofile\.nuget\packages\tools.innosetup\6.0.5\tools\ISCC.exe" Installer\installer-setup-x64.iss'
+  
+- task: PublishPipelineArtifact@1
+  inputs:
+    targetPath: 'Assets/PixiEditor-x64/'
+    artifact: 'PixiEditor-setup-x64.exe'
+    publishLocation: 'pipeline'
+
+- task: DotNetCoreCLI@2
+  inputs:
+    command: 'publish'
+    publishWebProjects: false
+    projects: '**/PixiEditor.csproj'
+    arguments: '-o "Builds\PixiEditor-x64-light" --self-contained=true -r "win-x64" -c Release'
+    zipAfterPublish: false
+
+- task: CopyFiles@2
+  inputs:
+    SourceFolder: 'UpdateInstaller'
+    Contents: '**'
+    TargetFolder: 'Builds/PixiEditor-x64-light'
+
+- task: PowerShell@2
+  inputs:
+    targetType: 'inline'
+    script: '& "$env:userprofile\.nuget\packages\tools.innosetup\6.0.5\tools\ISCC.exe" Installer\installer-setup-x64-light.iss'
+
+- task: PublishPipelineArtifact@1
+  inputs:
+    targetPath: 'Assets/PixiEditor-x64-light/'
+    artifact: 'PixiEditor-setup-x64-light.exe'
+    publishLocation: 'pipeline'