diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 74eb4302..d616f2d5 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -15,49 +15,46 @@ jobs: fail-fast: false matrix: arch: [x64] - os: [ubuntu-18.04, ubuntu-latest] + os: [ubuntu-20.04, ubuntu-22.04] compiler: [gcc, clang] runs-on: ${{ matrix.os }} - + env: + MATRIX_COMPILER: ${{matrix.compiler}} + MATRIX_OS: ${{matrix.os}} steps: - - uses: actions/checkout@v2 - + - uses: actions/checkout@v3 - name: Get dependencies run: | - sudo apt update + sudo apt-get update && sudo apt-get upgrade sudo mk/linux/setupBuildDeps.sh + - name: Build + run: | + if [ "${MATRIX_COMPILER}" = "clang" ]; then + EXTRA_OPTS="-f" + fi + mk/linux/build-mg.sh -m -d ${EXTRA_OPTS} + make -C mk/linux/build -j$(nproc) VERBOSE=1 - - name: Bulid MegaGlest With GCC Compiler - if: ${{ matrix.compiler == 'gcc' }} - env: - CC: gcc - CXX: g++ - run: mk/linux/build-mg.sh - - - name: Bulid MegaGlest With Clang Compiler - if: ${{ matrix.compiler == 'clang' }} - env: - CC: clang - CXX: clang++ - run: mk/linux/build-mg.sh - - - name: Prepare Snapshot - if: ${{ matrix.compiler == 'gcc' && matrix.os == 'ubuntu-latest' }} + build-linux-other: + strategy: + fail-fast: false + matrix: + compiler: [10, 12] # 11 is on 22.04 by default, tested above + runs-on: ubuntu-22.04 + env: + CC: gcc-${{matrix.compiler}} + CXX: g++-${{matrix.compiler}} + steps: + - uses: actions/checkout@v3 + - name: Get dependencies run: | - cp mk/shared/*.ini mk/linux/ - strip -g mk/linux/megaglest mk/linux/megaglest_editor mk/linux/megaglest_g3dviewer - - - name: Create Mega Glest Snapshot - if: ${{ matrix.compiler == 'gcc' && matrix.os == 'ubuntu-latest' }} - uses: actions/upload-artifact@v2 - with: - name: megaglest-${{ matrix.arch }}-${{ matrix.os }}-${{ matrix.compiler }} - path: | - mk/linux/megaglest - mk/linux/megaglest_editor - mk/linux/megaglest_g3dviewer - mk/linux/*.ini - !mk/linux/glest-dev.ini + sudo apt-get update && sudo apt-get upgrade + sudo apt-get install -y $CXX + sudo mk/linux/setupBuildDeps.sh + - name: Build + run: | + mk/linux/build-mg.sh -d -m + make -C mk/linux/build -j$(nproc) VERBOSE=1 build-win64: # The CMake configure and build commands are platform agnostic and should work equally @@ -75,7 +72,7 @@ jobs: runs-on: windows-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Cache Vcpkg Libs uses: actions/cache@v2 diff --git a/.github/workflows/snapshot.yml b/.github/workflows/snapshot.yml new file mode 100644 index 00000000..c1d66161 --- /dev/null +++ b/.github/workflows/snapshot.yml @@ -0,0 +1,39 @@ +name: Make Snapshot +concurrency: + group: build-${{ github.ref }} + cancel-in-progress: true +on: + push: + branches: [ develop ] + +# The artifact only runs on the same distro that it was built on. +# TODO: make AppImage instead +jobs: + make-snapshot: + strategy: + fail-fast: false + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - name: Get dependencies + run: | + sudo apt-get update && sudo apt-get upgrade + sudo mk/linux/setupBuildDeps.sh + - name: Build + run: | + mk/linux/build-mg.sh -m + make -C mk/linux/build -j$(nproc) VERBOSE=1 + - name: Prepare Snapshot + run: | + cp mk/shared/*.ini mk/linux/ + strip -g mk/linux/megaglest mk/linux/megaglest_editor mk/linux/megaglest_g3dviewer + - name: Create Mega Glest Snapshot + uses: actions/upload-artifact@v2 + with: + name: megaglest-x64-ubuntu-20.04-gcc + path: | + mk/linux/megaglest + mk/linux/megaglest_editor + mk/linux/megaglest_g3dviewer + mk/linux/*.ini + !mk/linux/glest-dev.ini diff --git a/mk/linux/setupBuildDeps.sh b/mk/linux/setupBuildDeps.sh index ba3b5bb9..a127cd8b 100755 --- a/mk/linux/setupBuildDeps.sh +++ b/mk/linux/setupBuildDeps.sh @@ -159,13 +159,9 @@ case $distribution in #name > zesty, EoL January 2018 installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl2-dev libopenal-dev liblua5.3-dev libjpeg-dev libpng-dev libfreetype6-dev libwxgtk3.0-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libvlccore-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn11-dev libgnutls28-dev libnghttp2-dev libssh2-1-dev libidn2-dev libpsl-dev" ;; - 18.04) - #name > bionic - installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl2-dev libopenal-dev liblua5.3-dev libjpeg-dev libpng-dev libfreetype6-dev libwxgtk3.0-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libvlccore-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn11-dev libgnutls28-dev libnghttp2-dev libssh2-1-dev libidn2-dev libpsl-dev" - ;; - 20.04) - #name > Focal Fossa - installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl2-dev libopenal-dev liblua5.3-dev libjpeg-dev libpng-dev libfreetype6-dev libwxgtk3.0-gtk3-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libvlccore-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn2-dev libpsl-dev libgnutls28-dev libnghttp2-dev libssh-dev libbrotli-dev" + "18.04"|"20.04"|"22.04") + #name > Bionic, Focal Fossa, Jammy Jellyfish + installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl2-dev libopenal-dev liblua5.3-dev libjpeg-dev libpng-dev libfreetype6-dev libwxgtk3.0-gtk3-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn2-dev libpsl-dev libgnutls28-dev libnghttp2-dev libssh-dev libbrotli-dev" ;; *) installcommand="apt-get install $APT_OPTIONS $packages_for_next_debian_ubuntu_mint" @@ -177,7 +173,7 @@ case $distribution in case $release in 20.04) #name > Focal Fossa - installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl2-dev libopenal-dev liblua5.3-dev libjpeg-dev libpng-dev libfreetype6-dev libwxgtk3.0-gtk3-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libvlc-dev libvlccore-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn2-dev libpsl-dev libgnutls28-dev libnghttp2-dev libssh-dev libbrotli-dev" + installcommand="apt-get install $APT_OPTIONS build-essential cmake libcurl4-gnutls-dev libsdl2-dev libopenal-dev liblua5.3-dev libjpeg-dev libpng-dev libfreetype6-dev libwxgtk3.0-gtk3-dev libcppunit-dev libfribidi-dev libftgl-dev libglew-dev libogg-dev libvorbis-dev libminiupnpc-dev libircclient-dev libxml2-dev libx11-dev libgl1-mesa-dev libglu1-mesa-dev librtmp-dev libkrb5-dev libldap2-dev libidn2-dev libpsl-dev libgnutls28-dev libnghttp2-dev libssh-dev libbrotli-dev" ;; *) installcommand="apt-get install $APT_OPTIONS $packages_for_next_debian_ubuntu_mint" @@ -185,7 +181,7 @@ case $distribution in ;; esac ;; - + LinuxMint|Linuxmint) case $release in 2)