diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 66098613..e4edb2b4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,111 +1,109 @@ name: Build on: [push, pull_request] +env: + WAF_FLAGS: -T debug --no-warns --prefix=build_hl2 jobs: - build-linux-i386: - runs-on: ubuntu-latest - + build-linux: + strategy: + matrix: + os: [ubuntu-latest] + bits: ['', '--64bits'] + android: [''] + dedicated: ['', '-dl'] + include: + - os: ubuntu-20.04 + bits: '' + android: '--android=armeabi-v7a-hard,4.9,21 --use-togles' + dedicated: '' + runs-on: ${{ matrix.os }} + env: + DEPS: libopenal-dev libpng-dev libjpeg-dev libfreetype6-dev libfontconfig1-dev libcurl4-gnutls-dev libsdl2-dev zlib1g-dev libbz2-dev libedit-dev steps: - - uses: actions/checkout@v2 - - name: Build linux-i386 - run: | - scripts/build-ubuntu-i386.sh -u + - uses: actions/checkout@v3 + with: + submodules: recursive - build-linux-amd64: - runs-on: ubuntu-20.04 + - name: Install common dependencies + run: sudo apt-get update && sudo apt-get install -y g++-multilib gcc-multilib + - name: Install 32bit dependencies + if: ${{ matrix.bits == '' && !matrix.android }} + run: | + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install -y aptitude + sudo aptitude install -y $(echo $DEPS | sed -r 's/[a-z0-9_\-]+/&:i386/g') + - name: Install Android dependencies + if: ${{ matrix.android != '' }} + run: | + wget https://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip -o /dev/null + unzip android-ndk-r10e-linux-x86_64.zip + export NDK_HOME=$PWD/android-ndk-r10e/ + echo "NDK_HOME=$NDK_HOME" >> $GITHUB_ENV + echo "ANDROID_NDK_HOME=$NDK_HOME" >> $GITHUB_ENV + - name: Install 64bit dependencies + if: ${{ matrix.bits != '' }} + run: | + sudo apt-get install -y $DEPS - steps: - - uses: actions/checkout@v2 - - name: Build linux-amd64 - run: | - scripts/build-ubuntu-amd64.sh -u + - if: ${{ matrix.bits == '' && !matrix.android }} + name: Set PKG_CONFIG_PATH + run: echo "PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig" >> $GITHUB_ENV - build-android-armv7a: - runs-on: ubuntu-20.04 + - name: Configure + run: ./waf configure ${{ matrix.bits }} ${{ matrix.android }} ${{ matrix.dedicated }} $WAF_FLAGS + - name: Build ${{ matrix.os }} + run: ./waf install + - name: Tar binaries + run: tar cvf build.tar build_hl2 + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: Linux${{matrix.bits}}${{matrix.dedicated}}${{matrix.android}}.tar + path: build.tar - steps: - - uses: actions/checkout@v2 - - name: Build android-armv7a - run: | - scripts/build-android-armv7a.sh + build-macos: + strategy: + matrix: + dedicated: ['', '-dl'] - build-windows-i386: - runs-on: windows-2019 - - steps: - - uses: actions/checkout@v2 - - name: Build windows-i386 - run: | - git submodule init && git submodule update - ./waf.bat configure -T debug -u - ./waf.bat build - - build-windows-amd64: - runs-on: windows-2019 - - steps: - - uses: actions/checkout@v2 - - name: Build windows-amd64 - run: | - git submodule init && git submodule update - ./waf.bat configure -T debug -8 -u - ./waf.bat build - - build-dedicated-windows-i386: - runs-on: windows-2019 - - steps: - - uses: actions/checkout@v2 - - name: Build dedicated windows-i386 - run: | - git submodule init && git submodule update - ./waf.bat configure -T debug -dl - ./waf.bat build - - build-dedicated-windows-amd64: - runs-on: windows-2019 - - steps: - - uses: actions/checkout@v2 - - name: Build dedicated windows-amd64 - run: | - git submodule init && git submodule update - ./waf.bat configure -T debug -dl -8 - ./waf.bat build - - build-dedicated-linux-i386: - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v2 - - name: Build dedicated linux-i386 - run: | - scripts/build-ubuntu-i386.sh -dl - - build-dedicated-linux-amd64: - runs-on: ubuntu-20.04 - - steps: - - uses: actions/checkout@v2 - - name: Build dedicated linux-amd64 - run: | - scripts/build-ubuntu-amd64.sh -dl - - build-macos-amd64: runs-on: macos-latest steps: - - uses: actions/checkout@v2 - - name: Build macos-amd64 - run: | - scripts/build-macos-amd64.sh -u + - uses: actions/checkout@v3 + with: + submodules: recursive - build-dedicated-macos-amd64: - runs-on: macos-latest + - name: Install dependencies + run: brew install sdl2 + - name: Configure + run: ./waf configure --64bits ${{ matrix.dedicated }} $WAF_FLAGS + - name: Build macos-amd64 + run: ./waf install + - name: Tar binaries + run: tar cvf build.tar build_hl2 + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + name: macOS--64bits${{matrix.dedicated}}.tar + path: build.tar + + build-windows: + strategy: + matrix: + os: [windows-2019] + bits: ['', '--64bits'] + dedicated: ['', '-dl'] + runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 - - name: Build dedicated macos-amd64 - run: | - scripts/build-macos-amd64.sh -dl + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Configure + run: ./waf configure ${{ matrix.bits }} ${{ matrix.dedicated }} ${{ env.WAF_FLAGS }} + - name: Build ${{ matrix.os }} + run: ./waf install + diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9578d1cc..2cb1080c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,59 +1,87 @@ name: Tests on: [push, pull_request] +env: + WAF_FLAGS: -T release --no-warns --prefix=build_tests -lt --sanitize=address,undefined jobs: - tests-linux-i386: - runs-on: ubuntu-20.04 - + tests-linux: + strategy: + matrix: + os: [ubuntu-latest, ubuntu-20.04] + bits: ['', '--64bits'] + android: [''] + runs-on: ${{ matrix.os }} + env: + DEPS: libbz2-dev steps: - - uses: actions/checkout@v2 - - name: Run tests linux-i386 - run: | - scripts/tests-ubuntu-i386.sh + - uses: actions/checkout@v3 + with: + submodules: recursive - tests-linux-amd64: - runs-on: ubuntu-20.04 + - name: Install common dependencies + run: sudo apt-get update && sudo apt-get install -y g++-multilib gcc-multilib + - name: Install 32bit dependencies + if: ${{ matrix.bits == '' && !matrix.android }} + run: | + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install aptitude + sudo aptitude install -y $(echo $DEPS | sed -r 's/[a-z0-9_\-]+/&:i386/g') + - name: Install 64bit dependencies + if: ${{ matrix.bits != '' }} + run: | + sudo apt-get install -y $DEPS - steps: - - uses: actions/checkout@v2 - - name: Run tests linux-amd64 - run: | - scripts/tests-ubuntu-amd64.sh + - if: ${{ matrix.bits == '' && !matrix.android }} + name: Set PKG_CONFIG_PATH + run: echo "PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig" >> $GITHUB_ENV - tests-macos-amd64: + - name: Configure + run: ./waf configure ${{ matrix.bits }} $WAF_FLAGS + - name: Build ${{ matrix.os }} + run: ./waf install + - name: Run tests + run: | + cd build_tests + LD_LIBRARY_PATH=bin/ ./unittest + + tests-macos: runs-on: macos-latest steps: - - uses: actions/checkout@v2 - - name: Run tests macos-amd64 - run: | - scripts/tests-macos-amd64.sh + - uses: actions/checkout@v3 + with: + submodules: recursive - tests-windows-i386: - runs-on: windows-2019 + - name: Configure + run: ./waf configure --64bits $WAF_FLAGS + - name: Build macos-amd64 + run: ./waf install + - name: Run tests + run: | + cd build_tests + DYLD_LIBRARY_PATH=bin/ ./unittest + tests-windows: + strategy: + matrix: + os: [windows-2019] + bits: ['', '--64bits'] + runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 - - name: Run tests windows-i386 - run: | - git submodule init && git submodule update - ./waf.bat configure -T release -lt --prefix=out/ - ./waf.bat install - cd out - $env:Path = "bin"; - ./unittest.exe + - uses: actions/checkout@v3 + with: + submodules: recursive - tests-windows-amd64: - runs-on: windows-2019 + - name: Configure + run: ./waf configure ${{ matrix.bits }} ${{ env.WAF_FLAGS }} + + - name: Build ${{ matrix.os }} + run: ./waf install + - name: Run tests + run: | + cd build_tests + $env:Path = "bin"; + ./unittest.exe - steps: - - uses: actions/checkout@v2 - - name: Run tests windows-amd64 - run: | - git submodule init && git submodule update - ./waf.bat configure -T release -lt --prefix=out/ -8 - ./waf.bat install - cd out - $env:Path = "bin"; - ./unittest.exe diff --git a/scripts/build-android-armv7a.sh b/scripts/build-android-armv7a.sh deleted file mode 100755 index f3e16947..00000000 --- a/scripts/build-android-armv7a.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -git submodule init && git submodule update -wget https://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip -o /dev/null -unzip android-ndk-r10e-linux-x86_64.zip -export ANDROID_NDK_HOME=$PWD/android-ndk-r10e/ -export NDK_HOME=$PWD/android-ndk-r10e/ -./waf configure -T debug --android=armeabi-v7a-hard,4.9,21 --use-togles --no-warns && -./waf build diff --git a/scripts/build-macos-amd64.sh b/scripts/build-macos-amd64.sh deleted file mode 100755 index 919c66df..00000000 --- a/scripts/build-macos-amd64.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -git submodule init && git submodule update - -brew install sdl2 - -./waf configure -T debug --64bits --no-warns $* && -./waf build diff --git a/scripts/build-ubuntu-amd64.sh b/scripts/build-ubuntu-amd64.sh deleted file mode 100755 index ac06c47a..00000000 --- a/scripts/build-ubuntu-amd64.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -git submodule init && git submodule update -sudo apt-get update -sudo apt-get install -f -y libopenal-dev g++-multilib gcc-multilib libpng-dev libjpeg-dev libfreetype6-dev libfontconfig1-dev libcurl4-gnutls-dev libsdl2-dev zlib1g-dev libbz2-dev libedit-dev - -./waf configure -T debug --64bits --no-warns $* && -./waf build diff --git a/scripts/build-ubuntu-i386.sh b/scripts/build-ubuntu-i386.sh deleted file mode 100755 index 10115469..00000000 --- a/scripts/build-ubuntu-i386.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -git submodule init && git submodule update -sudo dpkg --add-architecture i386 -sudo apt-get update -sudo apt-get install -y aptitude -sudo aptitude install -y libopenal-dev:i386 g++-multilib gcc-multilib libpng-dev:i386 libjpeg-dev:i386 libfreetype6-dev:i386 libfontconfig1-dev:i386 libcurl4-gnutls-dev:i386 libsdl2-dev:i386 zlib1g-dev:i386 libbz2-dev:i386 libedit-dev:i386 - -PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig ./waf configure -T debug --no-warns $* && -./waf build diff --git a/scripts/tests-macos-amd64.sh b/scripts/tests-macos-amd64.sh deleted file mode 100755 index ee1d0cfa..00000000 --- a/scripts/tests-macos-amd64.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -git submodule init && git submodule update -./waf configure -T release --sanitize=address,undefined --no-warns -lt -8 --prefix=out/ $* && -./waf install && -cd out && -DYLD_LIBRARY_PATH=bin/ ./unittest || exit 1 diff --git a/scripts/tests-ubuntu-amd64.sh b/scripts/tests-ubuntu-amd64.sh deleted file mode 100755 index 6b1aad9e..00000000 --- a/scripts/tests-ubuntu-amd64.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -git submodule init && git submodule update -sudo apt-get update -sudo apt-get install -y libbz2-dev - -./waf configure -T release --sanitize=address,undefined --no-warns -lt --prefix=out/ --64bits $* && -./waf install && -cd out && -LD_LIBRARY_PATH=bin/ ./unittest diff --git a/scripts/tests-ubuntu-i386.sh b/scripts/tests-ubuntu-i386.sh deleted file mode 100755 index 178ed67d..00000000 --- a/scripts/tests-ubuntu-i386.sh +++ /dev/null @@ -1,11 +0,0 @@ -install#!/bin/sh - -git submodule init && git submodule update -sudo dpkg --add-architecture i386 -sudo apt-get update -sudo apt-get install -y g++-multilib gcc-multilib libbz2-dev:i386 - -PKG_CONFIG_PATH=/usr/lib/i386-linux-gnu/pkgconfig ./waf configure -T release --sanitize=address,undefined --no-warns -lt --prefix=out/ $* && -./waf install && -cd out && -LD_LIBRARY_PATH=bin/ ./unittest