From 2e063e0fcfbf0a397a2a60e183e9ee68fcedb0f4 Mon Sep 17 00:00:00 2001 From: supermerill Date: Tue, 30 Apr 2024 20:37:09 +0200 Subject: [PATCH] Fix & optimize windows github builds --- .github/workflows/ccpp_win.yml | 59 ++++++-------- .github/workflows/ccpp_win_debug.yml | 69 ++++++++++++++-- .github/workflows/ccpp_win_deps.yml | 118 +++++++++++++++++++++++++++ .github/workflows/ccpp_win_rc.yml | 58 ++++++------- 4 files changed, 233 insertions(+), 71 deletions(-) create mode 100644 .github/workflows/ccpp_win_deps.yml diff --git a/.github/workflows/ccpp_win.yml b/.github/workflows/ccpp_win.yml index 1bd841de42c..6ede51d046f 100644 --- a/.github/workflows/ccpp_win.yml +++ b/.github/workflows/ccpp_win.yml @@ -6,31 +6,11 @@ on: - Nigthly - nightly_dev - nightly_master - - debug_win jobs: - build_dep: - runs-on: windows-2019 - - steps: - - uses: actions/checkout@v3 - - uses: ilammy/msvc-dev-cmd@v1 - - name: mkdir in deps - run: mkdir deps/build - - name: cmake and make deps - working-directory: ./deps/build - run: | - cmake .. -G "Visual Studio 16 2019" -A x64 - msbuild /m ALL_BUILD.vcxproj - - name: Upload artifact - uses: actions/upload-artifact@v1.0.0 - with: - name: deps_win - path: ./deps/build/destdir/ build: runs-on: windows-2019 - needs: build_dep steps: - uses: actions/checkout@v1 @@ -41,19 +21,32 @@ jobs: - name: change date in version shell: powershell run: (Get-Content version.inc) | Foreach-Object {$_ -replace "\+UNKNOWN", ("_" + [datetime]::Today.ToString("yyyy-MM-dd"))} | Set-Content version.inc - - name: mkdir in deps directory - run: mkdir deps/destdir - - name: download deps - uses: actions/download-artifact@v1 - with: - name: deps_win - path: deps/destdir - - name: echo dir deps - run: dir deps - - name: echo dir deps destdir - run: dir deps/destdir - - name: mkdir - run: mkdir build + - run: mkdir deps/destdir + - name: copy deps + working-directory: ./deps/destdir + shell: powershell + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/deps_25/deps_win.zip", "deps_win.zip")' + - name: unzip deps + working-directory: ./deps/destdir + shell: cmd + run: '"C:/Program Files/7-Zip/7z.exe" x deps_win.zip' + - run: dir deps + - run: dir deps/destdir + - run: dir deps/destdir/usr + - run: mkdir msgfmt_bin + - name: copy gettext + working-directory: ./msgfmt_bin + shell: powershell + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/gettext/gettext-tools-static-0.18.1.1.zip", "gettext.zip")' + - name: unzip + working-directory: ./msgfmt_bin + shell: cmd + run: '"C:/Program Files/7-Zip/7z.exe" x gettext.zip' + - name: add msgfmt to path + shell: powershell + working-directory: msgfmt_bin + run: echo "$pwd;" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - run: mkdir build - name: cmake working-directory: ./build run: cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="d:\a\${{ github.event.repository.name }}\${{ github.event.repository.name }}\deps\destdir\usr\local" diff --git a/.github/workflows/ccpp_win_debug.yml b/.github/workflows/ccpp_win_debug.yml index 73c10012627..fe6abf9cb46 100644 --- a/.github/workflows/ccpp_win_debug.yml +++ b/.github/workflows/ccpp_win_debug.yml @@ -6,8 +6,55 @@ on: - debug_win jobs: + + build_pot: + runs-on: windows-2019 + + steps: + - uses: actions/checkout@v1 + - uses: ilammy/msvc-dev-cmd@v1 + - name: update submodule profiles + working-directory: ./resources/profiles + run: git submodule update --init + - run: mkdir deps/destdir + - name: copy deps + working-directory: ./deps/destdir + shell: powershell + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/deps_25/deps_win.zip", "deps_win.zip")' + - name: unzip deps + working-directory: ./deps/destdir + shell: cmd + run: '"C:/Program Files/7-Zip/7z.exe" x deps_win.zip' + - run: dir deps + - run: dir deps/destdir + - run: dir deps/destdir/usr + - run: mkdir msgfmt_bin + - name: copy gettext + working-directory: ./msgfmt_bin + shell: powershell + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/gettext/gettext-tools-static-0.18.1.1.zip", "gettext.zip")' + - name: unzip + working-directory: ./msgfmt_bin + shell: cmd + run: '"C:/Program Files/7-Zip/7z.exe" x gettext.zip' + - name: add msgfmt to path + shell: powershell + working-directory: msgfmt_bin + run: echo "$pwd;" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - run: mkdir build + - name: cmake + working-directory: ./build + run: cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="d:\a\${{ github.event.repository.name }}\${{ github.event.repository.name }}\deps\destdir\usr\local" + - name: make .mo + working-directory: ./build + run: msbuild /m /P:Configuration=RelWithDebInfo gettext_po_to_mo.vcxproj + - name: make .pot + working-directory: ./build + run: msbuild /m /P:Configuration=RelWithDebInfo gettext_make_pot.vcxproj + build_dep: runs-on: windows-2019 + needs: build_pot steps: - uses: actions/checkout@v2 @@ -47,12 +94,22 @@ jobs: with: name: deps_win path: deps/destdir - - name: echo dir deps - run: dir deps - - name: echo dir deps destdir - run: dir deps/destdir - - name: mkdir - run: mkdir build + - run: dir deps + - run: dir deps/destdir + - run: mkdir msgfmt_bin + - name: copy gettext + working-directory: ./msgfmt_bin + shell: powershell + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/gettext/gettext-tools-static-0.18.1.1.zip", "gettext.zip")' + - name: unzip + working-directory: ./msgfmt_bin + shell: cmd + run: '"C:/Program Files/7-Zip/7z.exe" x gettext.zip' + - name: add msgfmt to path + shell: powershell + working-directory: msgfmt_bin + run: echo "$pwd;" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - run: mkdir build - name: cmake working-directory: ./build run: cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="d:\a\${{ github.event.repository.name }}\${{ github.event.repository.name }}\deps\destdir\usr\local" diff --git a/.github/workflows/ccpp_win_deps.yml b/.github/workflows/ccpp_win_deps.yml new file mode 100644 index 00000000000..9155f24fd8f --- /dev/null +++ b/.github/workflows/ccpp_win_deps.yml @@ -0,0 +1,118 @@ +name: C/C++ dep build windows x64 + +on: + push: + branches: + - debug_win + +jobs: + build_dep: + runs-on: windows-2019 + + steps: + - uses: actions/checkout@v3 + - uses: ilammy/msvc-dev-cmd@v1 + - name: mkdir in deps + run: mkdir deps/build + - name: cmake and make deps + working-directory: ./deps/build + run: | + cmake .. -G "Visual Studio 16 2019" -A x64 + msbuild /m ALL_BUILD.vcxproj + - name: Upload artifact + uses: actions/upload-artifact@v1.0.0 + with: + name: deps_win + path: ./deps/build/destdir/ + + build: + runs-on: windows-2019 + needs: build_dep + + steps: + - uses: actions/checkout@v1 + - uses: ilammy/msvc-dev-cmd@v1 + - name: update submodule profiles + working-directory: ./resources/profiles + run: git submodule update --init + - name: change date in version + shell: powershell + run: (Get-Content version.inc) | Foreach-Object {$_ -replace "\+UNKNOWN", ("_" + [datetime]::Today.ToString("yyyy-MM-dd"))} | Set-Content version.inc + - run: mkdir deps/destdir + - name: download deps + uses: actions/download-artifact@v1 + with: + name: deps_win + path: deps/destdir + - run: dir deps + - run: dir deps/destdir + - run: mkdir msgfmt_bin + - name: copy gettext + working-directory: ./msgfmt_bin + shell: powershell + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/gettext/gettext-tools-static-0.18.1.1.zip", "gettext.zip")' + - name: unzip + working-directory: ./msgfmt_bin + shell: cmd + run: '"C:/Program Files/7-Zip/7z.exe" x gettext.zip' + - name: add msgfmt to path + shell: powershell + working-directory: msgfmt_bin + run: echo "$pwd;" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - run: mkdir build + - name: cmake + working-directory: ./build + run: cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="d:\a\${{ github.event.repository.name }}\${{ github.event.repository.name }}\deps\destdir\usr\local" + - name: make + working-directory: ./build + run: msbuild /m /P:Configuration=RelWithDebInfo INSTALL.vcxproj + - name: make .mo + working-directory: ./build + run: msbuild /m /P:Configuration=RelWithDebInfo gettext_po_to_mo.vcxproj + - name: make .pot + working-directory: ./build + run: msbuild /m /P:Configuration=RelWithDebInfo gettext_make_pot.vcxproj + - name: create directory and copy into it + working-directory: ./build + run: ls + - name: create directory and copy into it + working-directory: ./build + shell: powershell + #todo: add the opengl folder + run: mkdir package + - name: copy from release + working-directory: ./build + shell: powershell + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/1.75/Slic3r_win_build.zip", "Slic3r_win_build.zip")' + - name: unzip + working-directory: ./build + shell: cmd + run: '"C:/Program Files/7-Zip/7z.exe" x Slic3r_win_build.zip' + - name: copy missing dll content from old release + working-directory: ./build + shell: cmd + run: | + xcopy /RCYIE Slic3r_win_build\*.dll package\ + xcopy /RCYIE Slic3r_win_build\local-settings.bat package\${{ github.event.repository.name }}_local-settings.bat + xcopy /RCYIE Slic3r_win_build\mesa package\ + - name: copy new resources + working-directory: ./build + shell: cmd + run: xcopy /RCYIE ..\resources package\resources + - name: copy dll & exe + working-directory: ./build + shell: cmd + run: | + xcopy /RCYIE src\RelWithDebInfo\*.dll package\ + xcopy /RCYIE src\RelWithDebInfo\*.exe package\ + xcopy /RCYIE c:\windows\system32\VCRUNTIME140* package\ + del package\opengl32.dll +# - name: create zip +# working-directory: ./build +# shell: cmd +# run: '"C:/Program Files/7-Zip/7z.exe" a -tzip nightly.zip *' + - name: Upload artifact + uses: actions/upload-artifact@v1.0.0 + with: + name: nightly_win64 + path: build/package/ diff --git a/.github/workflows/ccpp_win_rc.yml b/.github/workflows/ccpp_win_rc.yml index 56a3968754f..c94d8ec5538 100644 --- a/.github/workflows/ccpp_win_rc.yml +++ b/.github/workflows/ccpp_win_rc.yml @@ -9,27 +9,8 @@ jobs: build_dep: runs-on: windows-2019 - steps: - - uses: actions/checkout@v2 - with: - ref: 'rc' - - uses: ilammy/msvc-dev-cmd@v1 - - name: mkdir in deps - run: mkdir deps/build - - name: cmake and make deps - working-directory: ./deps/build - run: | - cmake .. -G "Visual Studio 16 2019" -A x64 - msbuild /m ALL_BUILD.vcxproj - - name: Upload artifact - uses: actions/upload-artifact@v1.0.0 - with: - name: deps_win - path: ./deps/build/destdir/ - build: runs-on: windows-2019 - needs: build_dep steps: - uses: actions/checkout@v1 @@ -40,19 +21,32 @@ jobs: - name: change date in version shell: powershell run: (Get-Content version.inc) | Foreach-Object {$_ -replace "\+UNKNOWN", ("")} | Set-Content version.inc - - name: mkdir in deps directory - run: mkdir deps/destdir - - name: download deps - uses: actions/download-artifact@v1 - with: - name: deps_win - path: deps/destdir - - name: echo dir deps - run: dir deps - - name: echo dir deps destdir - run: dir deps/destdir - - name: mkdir - run: mkdir build + - run: mkdir deps/destdir + - name: copy deps + working-directory: ./deps/destdir + shell: powershell + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/deps_25/deps_win.zip", "deps_win.zip")' + - name: unzip deps + working-directory: ./deps/destdir + shell: cmd + run: '"C:/Program Files/7-Zip/7z.exe" x deps_win.zip' + - run: dir deps + - run: dir deps/destdir + - run: dir deps/destdir/usr + - run: mkdir msgfmt_bin + - name: copy gettext + working-directory: ./msgfmt_bin + shell: powershell + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/gettext/gettext-tools-static-0.18.1.1.zip", "gettext.zip")' + - name: unzip + working-directory: ./msgfmt_bin + shell: cmd + run: '"C:/Program Files/7-Zip/7z.exe" x gettext.zip' + - name: add msgfmt to path + shell: powershell + working-directory: msgfmt_bin + run: echo "$pwd;" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + - run: mkdir build - name: cmake working-directory: ./build run: cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="d:\a\${{ github.event.repository.name }}\${{ github.event.repository.name }}\deps\destdir\usr\local"