build.yml 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. name: MSBuild
  2. on:
  3. push:
  4. branches:
  5. - master
  6. paths-ignore:
  7. - '**/README.md'
  8. env:
  9. SOLUTION_FILE_PATH: CP_Main_10.sln
  10. jobs:
  11. build:
  12. runs-on: windows-latest
  13. steps:
  14. - uses: actions/checkout@v4
  15. - name: Generate build number
  16. id: buildnumber
  17. uses: onyxmueller/build-tag-number@v1
  18. with:
  19. token: ${{secrets.GITHUB_TOKEN}}
  20. - name: Set the value
  21. run: |
  22. echo "VERSION_FILENAME=3_25_${env:BUILD_NUMBER}_0" | Out-File -FilePath $env:GITHUB_ENV -Append
  23. echo "VERSION_DOT_FILENAME=3.25.${env:BUILD_NUMBER}.0" | Out-File -FilePath $env:GITHUB_ENV -Append
  24. - name: Add MSBuild to PATH
  25. uses: microsoft/setup-msbuild@v2
  26. - name: Restore NuGet packages
  27. working-directory: ${{env.GITHUB_WORKSPACE}}
  28. run: nuget restore ${{env.SOLUTION_FILE_PATH}}
  29. - name: Build 32bit
  30. run: msbuild CP_Main_10.sln /p:Configuration=Release /p:Platform=Win32
  31. - name: Build 64bit
  32. run: msbuild CP_Main_10.sln /p:Configuration=Release /p:Platform=x64
  33. - name: Set Versions
  34. run: |
  35. DittoSetup\rcedit-x86 Release\Ditto.exe --set-file-version ${{env.VERSION_DOT_FILENAME}} --set-product-version ${{env.VERSION_DOT_FILENAME}}
  36. DittoSetup\rcedit-x64 Release64\Ditto.exe --set-file-version ${{env.VERSION_DOT_FILENAME}} --set-product-version ${{env.VERSION_DOT_FILENAME}}
  37. - name: 32bit installer
  38. uses: Minionguyjpro/[email protected]
  39. with:
  40. path: DittoSetup\DittoSetup_10.iss
  41. options: /F"DittoSetup_${{env.VERSION_FILENAME}}"
  42. - name: 64bit installer
  43. uses: Minionguyjpro/[email protected]
  44. with:
  45. path: DittoSetup\DittoSetup_10.iss
  46. options: /F"DittoSetup_64bit_${{env.VERSION_FILENAME}}" "/dbit64=1"
  47. - name: Build Portable
  48. run: |
  49. DittoSetup\BuildPortableZIP.bat "DittoPortable_${{env.VERSION_FILENAME}}" bit32
  50. DittoSetup\BuildPortableZIP.bat "DittoPortable_64bit_${{env.VERSION_FILENAME}}" bit64
  51. - name: Zip Debug Files
  52. run: |
  53. 7z a DittoSetup\output\DittoDebug_${{env.VERSION_FILENAME}}.7z *.pdb -r
  54. 7z a DittoSetup\output\DittoDebug_${{env.VERSION_FILENAME}}.7z *.map -r
  55. - name: Choco - Ditto
  56. run: |
  57. (Get-Content 'DittoSetup\Chocolatey\ditto.nuspec' -Raw).Replace("%version%", "${{env.VERSION_DOT_FILENAME}}") | Out-File 'DittoSetup\Chocolatey\ditto.nuspec'
  58. copy DittoSetup\Output\DittoSetup_${{env.VERSION_FILENAME}}.exe DittoSetup\Chocolatey\tools\DittoSetup_${{env.VERSION_FILENAME}}.exe
  59. copy DittoSetup\Output\DittoSetup_64bit_${{env.VERSION_FILENAME}}.exe DittoSetup\Chocolatey\tools\DittoSetup_64bit_${{env.VERSION_FILENAME}}.exe
  60. cd DittoSetup\Chocolatey
  61. choco pack
  62. choco push --source https://push.chocolatey.org/ --key ${{ secrets.CHOCO_API_KEY}}
  63. cd ..
  64. cd ..
  65. - name: Choco - Ditto.Install
  66. run: |
  67. (Get-Content 'DittoSetup\Chocolatey.install\ditto.nuspec' -Raw).Replace("%version%", "${{env.VERSION_DOT_FILENAME}}") | Out-File 'DittoSetup\Chocolatey.install\ditto.nuspec'
  68. copy DittoSetup\output\DittoSetup_${{env.VERSION_FILENAME}}.exe DittoSetup\Chocolatey.install\tools\DittoSetup_${{env.VERSION_FILENAME}}.exe
  69. copy DittoSetup\output\DittoSetup_64bit_${{env.VERSION_FILENAME}}.exe DittoSetup\Chocolatey.install\tools\DittoSetup_64bit_${{env.VERSION_FILENAME}}.exe
  70. cd DittoSetup\Chocolatey.install
  71. choco pack
  72. choco push --source https://push.chocolatey.org/ --key ${{ secrets.CHOCO_API_KEY}}
  73. cd ..
  74. cd ..
  75. - name: Choco - Ditto.Portable
  76. run: |
  77. (Get-Content 'DittoSetup\Chocolatey.portable\ditto.nuspec' -Raw).Replace("%version%", "${{env.VERSION_DOT_FILENAME}}") | Out-File 'DittoSetup\Chocolatey.portable\ditto.nuspec'
  78. copy DittoSetup\output\DittoPortable_${{env.VERSION_FILENAME}}.zip DittoSetup\Chocolatey.portable\tools\DittoPortable_${{env.VERSION_FILENAME}}.zip
  79. copy DittoSetup\output\DittoPortable_64bit_${{env.VERSION_FILENAME}}.zip DittoSetup\Chocolatey.portable\tools\DittoPortable_64bit_${{env.VERSION_FILENAME}}.zip
  80. cd DittoSetup\Chocolatey.portable
  81. choco pack
  82. choco push --source https://push.chocolatey.org/ --key ${{ secrets.CHOCO_API_KEY}}
  83. cd ..
  84. cd ..
  85. - name: Build appx
  86. run: |
  87. 7z x DittoSetup\output\DittoPortable_${{env.VERSION_FILENAME}}.zip -oDittoSetup\appx -r
  88. (Get-Content 'DittoSetup\appx\appxmanifest.xml' -Raw).Replace("%version%", "${{env.VERSION_DOT_FILENAME}}") | Out-File 'DittoSetup\appx\appxmanifest.xml'
  89. cd DittoSetup\appx
  90. $env:Path += ";C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86"
  91. makeappx.exe pack /f files.ini /p Ditto_${{env.VERSION_FILENAME}}.appx
  92. signtool.exe sign -f my.pfx -fd SHA256 -v Ditto_${{env.VERSION_FILENAME}}.appx
  93. cd ..
  94. cd ..
  95. copy DittoSetup\appx\Ditto_${{env.VERSION_FILENAME}}.appx DittoSetup\Output\Ditto_${{env.VERSION_FILENAME}}.appx
  96. - name: Publish to GitHub
  97. env:
  98. token: ${{secrets.GITHUB_TOKEN}}
  99. uploadPath: DittoSetup\output\
  100. tag: ${{env.VERSION_FILENAME}}
  101. previous_tag: 3.24.246.0
  102. run: |
  103. npm install ./DittoSetup/GitHubRelease
  104. node ./DittoSetup/GitHubRelease/index.js