From 8802e210797d48334f964052140eb24a93c6f814 Mon Sep 17 00:00:00 2001 From: Silverlan Date: Tue, 28 May 2024 10:30:54 +0200 Subject: [PATCH] ci(linux): fix libssl installation causing runner to restart This should be reverted once the core issue has been resolved: https://github.com/actions/runner-images/issues/9937 --- .github/workflows/check-linux-build.yml | 2 +- .github/workflows/pragma-linux-ci.yml | 2 +- build_scripts/build.py | 14 +++++++++----- github_actions/build_generic_module/action.yml | 2 +- github_actions/install_requirements/action.yml | 8 ++++++++ 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/.github/workflows/check-linux-build.yml b/.github/workflows/check-linux-build.yml index 575c1ba55..da3904a80 100644 --- a/.github/workflows/check-linux-build.yml +++ b/.github/workflows/check-linux-build.yml @@ -33,7 +33,7 @@ jobs: uses: ./pragma/github_actions/build id: build-pragma with: - build-args: "--with-pfm --with-all-pfm-modules --with-vr --with-lua-debugger=0" + build-args: "--with-pfm --with-all-pfm-modules --with-vr --with-lua-debugger=0 --no-libssl" #- name: Handle Error # uses: Silverlan/common_actions/action_handle_error@main diff --git a/.github/workflows/pragma-linux-ci.yml b/.github/workflows/pragma-linux-ci.yml index 1658d6771..3c896a63e 100644 --- a/.github/workflows/pragma-linux-ci.yml +++ b/.github/workflows/pragma-linux-ci.yml @@ -37,7 +37,7 @@ jobs: uses: ./pragma/github_actions/build id: build-pragma with: - build-args: "--with-pfm --with-all-pfm-modules --with-vr --with-networking --with-lua-debugger=0" + build-args: "--with-pfm --with-all-pfm-modules --with-vr --with-networking --with-lua-debugger=0 --no-libssl" - name: Create Release Archive shell: bash diff --git a/build_scripts/build.py b/build_scripts/build.py index 1abde75f2..c3881bded 100644 --- a/build_scripts/build.py +++ b/build_scripts/build.py @@ -48,6 +48,7 @@ if platform == "linux": parser.add_argument("--no-sudo", type=str2bool, nargs='?', const=True, default=False, help="Will not run sudo commands. System packages will have to be installed manually.") parser.add_argument("--no-confirm", type=str2bool, nargs='?', const=True, default=False, help="Disable any interaction with user (suitable for automated run).") + parser.add_argument("--no-libssl", type=str2bool, nargs='?', const=True, default=False, help="Disable the installation of the libssl-dev package.") args,unknown = parser.parse_known_args() args = vars(args) input_args = args @@ -86,6 +87,7 @@ cxx_compiler = args["cxx_compiler"] no_sudo = args["no_sudo"] no_confirm = args["no_confirm"] + no_libssl = args["no_libssl"] generator = args["generator"] #if platform == "win32": # vcvars = args["vcvars @@ -142,6 +144,7 @@ if platform == "linux": print("no_sudo: " +str(no_sudo)) print("no_confirm: " +str(no_confirm)) + print("no_libssl: " +str(no_libssl)) print("cmake_args: " +', '.join(additional_cmake_args)) print("modules: " +', '.join(modules)) @@ -254,11 +257,6 @@ def execscript(filepath): commands = [ # Required for the build script "apt-get install python3", - - # Required for Curl - # This has to be executed before "apt update", otherwise - # it will cause the GitHub runner to restart - "apt-get install libssl-dev", # Required for Pragma core "apt install build-essential", @@ -303,6 +301,12 @@ def execscript(filepath): "apt-get install ninja-build" ] + if not no_libssl: + # Required for Curl + # On a Ubuntu 24.04 GitHub runner this will currently cause a build failure, see https://github.com/actions/runner-images/issues/9937 + # The --no-libssl option is a workaround until that issue has been resolved. + commands.append("apt-get install libssl-dev") + install_system_packages(commands, no_confirm) module_list = [] diff --git a/github_actions/build_generic_module/action.yml b/github_actions/build_generic_module/action.yml index 70bec720d..1f6f51069 100644 --- a/github_actions/build_generic_module/action.yml +++ b/github_actions/build_generic_module/action.yml @@ -87,7 +87,7 @@ runs: id: build-pragma uses: Silverlan/pragma/github_actions/build@main with: - build-args: '--with-lua-debugger=0 --with-common-modules=0 --with-essential-client-modules=0 --cmake-arg=${{ steps.set-cmake-args.outputs.cmake-args }} ${{ steps.set-cmake-args.outputs.build-args }}' + build-args: '--with-lua-debugger=0 --no-libssl --with-common-modules=0 --with-essential-client-modules=0 --cmake-arg=${{ steps.set-cmake-args.outputs.cmake-args }} ${{ steps.set-cmake-args.outputs.build-args }}' - name: Set Output Variables shell: bash diff --git a/github_actions/install_requirements/action.yml b/github_actions/install_requirements/action.yml index 05e59ab22..253a31cd2 100644 --- a/github_actions/install_requirements/action.yml +++ b/github_actions/install_requirements/action.yml @@ -11,6 +11,14 @@ runs: - uses: Silverlan/common_actions/action_start@main with: name: "pragma > install_requirements" + + # This is a temporary fix for https://github.com/actions/runner-images/issues/9937 + # We have to install libssl-dev before "apt-get update" is called, otherwise the workflow will fail + - name: Install libssl-dev + shell: bash + if: ${{ runner.os == 'Linux' }} + run: | + sudo apt-get install libssl-dev # Required for CUDA - name: Set up GCC 11