77 tags :
88 - " v*"
99 branches :
10- - " master"
1110 - " develop"
1211 - " github-actions"
1312 - " gha-*"
2625 LibtorrentRasterbar_BUILD_DIR : ${{github.workspace}}/00/build/libtorrent-rasterbar
2726 LibtorrentRasterbar_INSTALL_DIR : ${{github.workspace}}/00/install/libtorrent-rasterbar
2827 # ^^
29- # HACK cache@v3: using '/00/' instead of '/../': Relative pathing '.' and '..' is not allowed.
28+ # HACK actions/ cache@v3: using '/00/' instead of '/../': Relative pathing '.' and '..' is not allowed.
3029 LibtorrentRasterbar_VERSION_FILE : ${{github.workspace}}/3rd/libtorrent-rasterbar/include/libtorrent/version.hpp
3130 Application_VERSION_FILE : ${{github.workspace}}/version
3231 Changelog_FILE_NAME : ${{github.workspace}}/00/GIT-CHANGELOG.txt
4241 environment : production
4342 steps :
4443 - name : Check out repository code
45- uses : actions/checkout@v3
44+ uses : actions/checkout@v4
4645
4746 - name : Create WebBrowser Addons
4847 id : webaddons
@@ -69,13 +68,13 @@ jobs:
6968 print(f"Addon_Web_Extension_Firefox={ artifact_firefox }", file=f)
7069
7170 - name : Upload Chromium Addon
72- uses : actions/upload-artifact@v3
71+ uses : actions/upload-artifact@v4
7372 with :
7473 name : artifact_chromium
7574 path : ${{ steps.webaddons.outputs.Addon_Web_Extension_Chromium }}
7675
7776 - name : Upload Firefox Addon
78- uses : actions/upload-artifact@v3
77+ uses : actions/upload-artifact@v4
7978 with :
8079 name : artifact_firefox
8180 path : ${{ steps.webaddons.outputs.Addon_Web_Extension_Firefox }}
9291 qt_host : ' linux'
9392 qt_target : ' desktop'
9493 qt_arch : ' gcc_64'
95- qt_tools : ' ' # To build OpenSSLv3: 'tools_opensslv3_src'
94+ qt_tools : ' '
95+ qt_modules : ' '
9696 Qt6_CUSTOM_INSTALL_PATH : " /home/runner/work/ArrowDL/qt/"
9797 DIRECTIVE_CMAKE_GENERATOR : ' '
9898 INSTALL_BOOST_PLATFORM_VERSION : ' 18.04' # 18.04, 20.04 Rem: Ubuntu 20.04 doesn't have Boost 1.77.0
@@ -103,6 +103,7 @@ jobs:
103103 qt_target : ' desktop'
104104 qt_arch : ' win64_mingw'
105105 qt_tools : ' tools_opensslv3_x64'
106+ qt_modules : ' '
106107 Qt6_CUSTOM_INSTALL_PATH : " D:\\ a\\ ArrowDL\\ qt\\ "
107108 DIRECTIVE_CMAKE_GENERATOR : ' -G "MinGW Makefiles"'
108109 INSTALL_BOOST_PLATFORM_VERSION : ' 2019' # 2019, 2022
@@ -115,7 +116,7 @@ jobs:
115116
116117 steps :
117118 - name : Check out repository code
118- uses : actions/checkout@v3
119+ uses : actions/checkout@v4
119120
120121# - name: Clean Environment
121122# shell: python # otherwise Windows uses Powershell, Linux uses bash
@@ -224,7 +225,7 @@ jobs:
224225 echo "LibtorrentRasterbar_VERSION: '${{env.LibtorrentRasterbar_VERSION}}'"
225226
226227 - name : Cache Libtorrent Static Libraries
227- uses : actions/cache@v3
228+ uses : actions/cache@v4
228229 id : cache-libtorrent
229230 env :
230231 LibtorrentRasterbar_VERSION : ${{ steps.getversion.outputs.LibtorrentRasterbar_VERSION }}
@@ -236,7 +237,7 @@ jobs:
236237 ${{env.LibtorrentRasterbar_INSTALL_DIR}}
237238
238239 - name : Install Boost
239- uses : MarkusJx/install-boost@v2.4.3
240+ uses : MarkusJx/install-boost@v2.4.5
240241 id : install-boost
241242 with :
242243 boost_version : ${{env.BOOST_VERSION}}
@@ -260,8 +261,8 @@ jobs:
260261 ls -al
261262
262263 - name : Install Qt
263- uses : jurplel/install-qt-action@v3
264- # Rem: Once installed, ${{env.Qt6_DIR }} is set.
264+ uses : jurplel/install-qt-action@v4
265+ # Rem: Once installed, ${{env.QT_ROOT_DIR }} is set.
265266 # https://ddalcino.github.io/aqt-list-server/
266267 with :
267268 aqtversion : ' ==3.1.*'
@@ -271,18 +272,21 @@ jobs:
271272 target : ${{matrix.qt_target}}
272273 arch : ${{matrix.qt_arch}}
273274 tools : ${{matrix.qt_tools}}
275+ modules : ${{matrix.qt_modules}}
274276 cache : true
275-
276- - name : List files in Qt (if Debug Logging is enabled)
277- if : runner.debug == '1'
278- shell : bash
279- run : cd "${{env.Qt6_DIR}}/../../" && ls -alR
280- # env.Qt6_DIR
281- # "/home/runner/work/ArrowDL/qt/Qt/6.3.1/gcc_64"
282- # "D:\a\ArrowDL\qt\Qt\6.3.1\mingw_64"
283-
277+ add-tools-to-path : false # WIP migration v3 to v4
278+
279+ # Rem: this step was commented because it's too expensive:
280+ # - name: List files in Qt (if Debug Logging is enabled)
281+ # if: runner.debug == '1'
282+ # shell: bash
283+ # run: cd "${{env.QT_ROOT_DIR}}/../../" && ls -alR
284+ # # env.QT_ROOT_DIR
285+ # # "/home/runner/work/ArrowDL/qt/Qt/6.3.1/gcc_64"
286+ # # "D:\a\ArrowDL\qt\Qt\6.3.1\mingw_64"
287+ #
284288 - name : Find OpenSSL in Qt6
285- # The thing is that "env.Qt6_DIR " is defined only at runtime, *after* install-qt-action has run.
289+ # The thing is that "env.QT_ROOT_DIR " is defined only at runtime, *after* install-qt-action has run.
286290 id : qt6openssl
287291 shell : python
288292 # 2 versions present in Ubuntu:
@@ -292,14 +296,14 @@ jobs:
292296 #
293297 # * Qt6 version (3.0.12)
294298 # To build it:
295- # openssl_dir = os.path.normpath(os.path.join(r"${{env.Qt6_DIR }}", "..", "..", "Tools", "OpenSSLv3", "src"))
299+ # openssl_dir = os.path.normpath(os.path.join(r"${{env.QT_ROOT_DIR }}", "..", "..", "Tools", "OpenSSLv3", "src"))
296300 # cd "${{openssl_dir}}"
297301 # ./config
298302 # make
299303 # make test
300304 # sudo make install_sw
301305 # Then:
302- # openssl_dir = os.path.normpath(os.path.join(r"${{env.Qt6_DIR }}", "..", "..", "Tools", "OpenSSLv3", "src"))
306+ # openssl_dir = os.path.normpath(os.path.join(r"${{env.QT_ROOT_DIR }}", "..", "..", "Tools", "OpenSSLv3", "src"))
303307 # openssl_lib_eay = os.path.normpath(os.path.join(openssl_dir, "lib", "libcrypto.a"))
304308 # openssl_ssl_eay = os.path.normpath(os.path.join(openssl_dir, "lib", "libssl.a"))
305309 #
@@ -311,7 +315,7 @@ jobs:
311315 # ssleay32 -> libssl
312316
313317 if "${{ matrix.os }}" == "windows-latest":
314- openssl_dir = os.path.normpath(os.path.join(r"${{env.Qt6_DIR }}", "..", "..", "Tools", "OpenSSLv3", "Win_x64"))
318+ openssl_dir = os.path.normpath(os.path.join(r"${{env.QT_ROOT_DIR }}", "..", "..", "Tools", "OpenSSLv3", "Win_x64"))
315319 openssl_lib_eay = os.path.normpath(os.path.join(openssl_dir, "lib", "libcrypto.lib"))
316320 openssl_ssl_eay = os.path.normpath(os.path.join(openssl_dir, "lib", "libssl.lib"))
317321
@@ -338,7 +342,7 @@ jobs:
338342 if : ${{ steps.cache-libtorrent.outputs.cache-hit != 'true' }}
339343 env :
340344 Boost_ROOT : ${{ steps.install-boost.outputs.Boost_ROOT }}
341- Qt6_Dir2 : ${{env.Qt6_DIR }}
345+ Qt6_Dir2 : ${{env.QT_ROOT_DIR }}
342346 DIRECTIVE_CMAKE_GENERATOR : ${{matrix.DIRECTIVE_CMAKE_GENERATOR}}
343347 BUILD_TESTS : " OFF" # OFF because they take 10+ minutes to build and 776.74 sec to run tests on Ubuntu
344348 DEPRECATED_FUNCTIONS : " OFF" # OFF to remove deprecated functions
@@ -387,7 +391,7 @@ jobs:
387391 - name : Configure Project
388392 env :
389393 Boost_ROOT : ${{ steps.install-boost.outputs.Boost_ROOT }}
390- Qt6_Dir2 : ${{env.Qt6_DIR }}
394+ Qt6_Dir2 : ${{env.QT_ROOT_DIR }}
391395 OpenSSL_ROOT_DIR : ${{ steps.qt6openssl.outputs.OpenSSL_ROOT_DIR }}
392396 DIRECTIVE_CMAKE_GENERATOR : ${{matrix.DIRECTIVE_CMAKE_GENERATOR}}
393397 working-directory : " ${{env.Project_BUILD_DIR}}"
@@ -473,7 +477,7 @@ jobs:
473477
474478 - name : Upload Linux Portable
475479 if : ${{ matrix.os == 'ubuntu-latest' }}
476- uses : actions/upload-artifact@v3
480+ uses : actions/upload-artifact@v4
477481 env :
478482 TARBALL_NAME : " ${{ steps.getversion.outputs.Application_Linux_NAME }}.tar.gz"
479483 with :
@@ -501,7 +505,7 @@ jobs:
501505
502506 - name : Upload Windows MingGW x64 Portable
503507 if : ${{ matrix.os == 'windows-latest' }}
504- uses : actions/upload-artifact@v3
508+ uses : actions/upload-artifact@v4
505509 env :
506510 ZIP_NAME : " ${{ steps.getversion.outputs.Application_Windows_MinGW_x64_NAME }}.zip"
507511 with :
@@ -510,7 +514,7 @@ jobs:
510514
511515 - name : Create NSIS installer
512516 if : ${{ matrix.os == 'windows-latest' }}
513- uses : joncloud/makensis-action@v3.7
517+ uses : joncloud/makensis-action@v4.1
514518 env :
515519 Application_VERSION : ${{ steps.getversion.outputs.Application_VERSION }}
516520 with :
@@ -534,7 +538,7 @@ jobs:
534538
535539 - name : Upload Windows 64 Installer
536540 if : ${{ matrix.os == 'windows-latest' }}
537- uses : actions/upload-artifact@v3
541+ uses : actions/upload-artifact@v4
538542 with :
539543 name : artifact_windows_64_installer
540544 path : " ${{env.Project_RELEASE_DIR}}/ArrowDL_x64_Setup.exe"
@@ -555,35 +559,35 @@ jobs:
555559
556560 - name : Download Chromium Addon
557561 continue-on-error : true
558- uses : actions/download-artifact@v4.1.7
562+ uses : actions/download-artifact@v4
559563 with :
560564 name : artifact_chromium
561565 path : " ${{env.Project_RELEASE_DIR}}"
562566
563567 - name : Download Firefox Addon
564568 continue-on-error : true
565- uses : actions/download-artifact@v4.1.7
569+ uses : actions/download-artifact@v4
566570 with :
567571 name : artifact_firefox
568572 path : " ${{env.Project_RELEASE_DIR}}"
569573
570574 - name : Download Linux Portable
571575 continue-on-error : true
572- uses : actions/download-artifact@v4.1.7
576+ uses : actions/download-artifact@v4
573577 with :
574578 name : artifact_linux_portable
575579 path : " ${{env.Project_RELEASE_DIR}}"
576580
577581 - name : Download Windows MinGW 64 Portable
578582 continue-on-error : true
579- uses : actions/download-artifact@v4.1.7
583+ uses : actions/download-artifact@v4
580584 with :
581585 name : artifact_windows_mingw_64_portable
582586 path : " ${{env.Project_RELEASE_DIR}}"
583587
584588 - name : Download Windows 64 Installer
585589 continue-on-error : true
586- uses : actions/download-artifact@v4.1.7
590+ uses : actions/download-artifact@v4
587591 with :
588592 name : artifact_windows_64_installer
589593 path : " ${{env.Project_RELEASE_DIR}}"
@@ -614,7 +618,7 @@ jobs:
614618 my_file.write("\r\n")
615619
616620 - name : Publish
617- uses : softprops/action-gh-release@v0.1.15
621+ uses : softprops/action-gh-release@v2
618622 # if: startsWith(github.ref, 'refs/tags/') # Limit releases to pushes to tags
619623 env :
620624 BRANCH_OR_TAG_NAME : ${{ github.head_ref || github.ref_name }}
0 commit comments