diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 6c8b6702..9c748a62 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -8,20 +8,15 @@ on: branches: - "main" -env: - PREMAKE_VERSION: "5.0.0-beta4" - jobs: build-test-linux: - env: - PREMAKE_CONFIG: gmake2 runs-on: ubuntu-latest container: ubuntu:24.04 steps: - name: Install g++ and multilib run: | apt-get update - apt-get install -y git make gcc-13 g++-13 gcc-13-multilib g++-13-multilib + apt-get install -y wget tar git make gcc-13 g++-13 gcc-13-multilib g++-13-multilib update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 13 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 13 update-alternatives --set gcc /usr/bin/gcc-13 @@ -32,14 +27,11 @@ jobs: with: submodules: recursive - - name: Setup premake - uses: abel0b/setup-premake@v2.4 - with: - version: ${{ env.PREMAKE_VERSION }} - - name: Premake generate working-directory: ${{ github.workspace }} - run: premake5 ${{ env.PREMAKE_CONFIG }} + env: + OAT_CI_NO_PROMPT: 1 + run: ./generate.sh - name: Build working-directory: ${{ github.workspace }} @@ -56,8 +48,6 @@ jobs: ./ZoneCommonTests build-test-windows: - env: - PREMAKE_CONFIG: vs2022 runs-on: windows-latest steps: - name: Checkout repository @@ -68,14 +58,11 @@ jobs: - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v2.0.0 - - name: Setup premake - uses: abel0b/setup-premake@v2.4 - with: - version: ${{ env.PREMAKE_VERSION }} - - name: Premake generate working-directory: ${{ github.workspace }} - run: premake5 ${{ env.PREMAKE_CONFIG }} + env: + OAT_CI_NO_PROMPT: 1 + run: ./generate.bat - name: Build working-directory: ${{ github.workspace }} diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 6b2a0ed0..9078eb7b 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -5,20 +5,15 @@ on: tags: - "v*.*.*" -env: - PREMAKE_VERSION: "5.0.0-beta4" - jobs: build-release-linux: - env: - PREMAKE_CONFIG: gmake2 runs-on: ubuntu-latest container: ubuntu:24.04 steps: - name: Install g++ and multilib run: | apt-get update - apt-get install -y git make gcc-13 g++-13 gcc-13-multilib g++-13-multilib + apt-get install -y wget tar git make gcc-13 g++-13 gcc-13-multilib g++-13-multilib update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 13 update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 13 update-alternatives --set gcc /usr/bin/gcc-13 @@ -29,14 +24,11 @@ jobs: with: submodules: recursive - - name: Setup premake - uses: abel0b/setup-premake@v2.4 - with: - version: ${{ env.PREMAKE_VERSION }} - - name: Premake generate working-directory: ${{ github.workspace }} - run: premake5 ${{ env.PREMAKE_CONFIG }} + env: + OAT_CI_NO_PROMPT: 1 + run: ./generate.sh - name: Build working-directory: ${{ github.workspace }} @@ -50,8 +42,6 @@ jobs: ${{ github.workspace }}/build/bin/Release_x86 build-release-windows: - env: - PREMAKE_CONFIG: vs2022 runs-on: windows-latest steps: - name: Checkout repository @@ -62,14 +52,11 @@ jobs: - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@v2.0.0 - - name: Setup premake - uses: abel0b/setup-premake@v2.4 - with: - version: ${{ env.PREMAKE_VERSION }} - - name: Premake generate working-directory: ${{ github.workspace }} - run: premake5 ${{ env.PREMAKE_CONFIG }} + env: + OAT_CI_NO_PROMPT: 1 + run: ./generate.bat - name: Build working-directory: ${{ github.workspace }} diff --git a/generate.bat b/generate.bat index 1b7ddd5a..24e955b4 100644 --- a/generate.bat +++ b/generate.bat @@ -9,13 +9,20 @@ goto start if not exist "build" mkdir "build" -powershell -Command "Invoke-WebRequest %PREMAKE_URL% -OutFile build/premake.zip" +where /q "pwsh" +IF %ERRORLEVEL% EQU 0 ( + set POWERSHELL_BIN="pwsh" +) else ( + set POWERSHELL_BIN="powershell" +) + +%POWERSHELL_BIN% -Command "Invoke-WebRequest %PREMAKE_URL% -OutFile build/premake.zip" IF %ERRORLEVEL% NEQ 0 ( echo Download failed >&2 exit 2 ) -powershell -Command "Expand-Archive -LiteralPath build/premake.zip -DestinationPath build" +%POWERSHELL_BIN% -Command "Expand-Archive -LiteralPath build/premake.zip -DestinationPath build" IF %ERRORLEVEL% NEQ 0 ( echo Extraction failed >&2 exit 2 @@ -23,7 +30,7 @@ IF %ERRORLEVEL% NEQ 0 ( rm build/premake.zip -powershell -Command "if ((Get-FileHash -LiteralPath build/premake5.exe -Algorithm SHA256).Hash -eq \"%PREMAKE_HASH%\") { exit 0 } else { exit 1 }" +%POWERSHELL_BIN% -Command "if ((Get-FileHash -LiteralPath build/premake5.exe -Algorithm SHA256).Hash -eq \"%PREMAKE_HASH%\") { exit 0 } else { exit 1 }" IF %ERRORLEVEL% NEQ 0 ( echo Hash verification failed >&2 rm build/premake5.exe @@ -46,9 +53,15 @@ IF EXIST build/premake5.exe ( goto runpremake ) +if "%OAT_CI_NO_PROMPT%" NEQ "" ( + call:downloadpremake + set PREMAKE_BIN="build/premake5.exe" + goto runpremake +) + echo Could not find premake5. You can either install it yourself or this script download it for you. set /p choice="Do you wish to download it automatically? [y/N]> " -if /i "%choice%"=="y" ( +if /i "%choice%" == "y" ( call:downloadpremake set PREMAKE_BIN="build/premake5.exe" goto runpremake diff --git a/generate.sh b/generate.sh index 1b1770bd..09a7a6fe 100755 --- a/generate.sh +++ b/generate.sh @@ -57,7 +57,7 @@ elif [[ -x "$(command -v build/premake5)" ]]; then PREMAKE_BIN='build/premake5' else echo "Could not find premake5. You can either install it yourself or this script download it for you." - if [[ "$(read -e -p 'Do you wish to download it automatically? [y/N]> '; echo $REPLY)" == [Yy]* ]]; then + if [[ ! -z "$OAT_CI_NO_PROMPT" ]] || [[ "$(read -e -p 'Do you wish to download it automatically? [y/N]> '; echo $REPLY)" == [Yy]* ]]; then echo "Installing premake" install_premake PREMAKE_BIN='build/premake5'