workflows/cmake.yml:add tests for recent gcc versions;migrate to checkoutv3 (#250)

* workflows/cmake.yml:test on Ubuntu Jammy (22.04);migrate to checkoutv3

This should also fix #247

* maybe fix ssh link error on Ubuntu Jammy

gcc and clang build is failing on Jammy with the message:

'cannot find -lssh: No such file or directory'

Basically I added libcurl-openssl-dev to the deps

* remove libcurl4-gnutls-dev

Trying to correct:

 The following packages have unmet dependencies:
libcurl4-gnutls-dev : Conflicts: libcurl4-openssl-dev but
7.81.0-1ubuntu1.3 is to be installed
libcurl4-openssl-dev : Conflicts: libcurl4-gnutls-dev but
7.81.0-1ubuntu1.3 is to be installed
E: Unable to correct problems, you have held broken packages.
An error occurred while installing build dependencies.

* use cmake FindCURL module

* for OpenSSL, use include instead of find_package

* remove jammy, add gcc-10 and 11 test

* revert now-unrelated changes

* clean-up

* add VERBOSE flag to make

* Update .github/workflows/cmake.yml

* Update .github/workflows/cmake.yml

* use '-f' option from build script to force clang

* force dynamic libs with '-d'

fixes #251

* mk/linux/setupBuildDeps.sh:fix script so 22.04 is detected

*remove vlc deps (not required for the CI)
*remove ubuntu-18.04 from the build matrix, see
https://github.blog/changelog/2022-08-09-github-actions-the-ubuntu-18-04-actions-runner-image-is-being-deprecated-and-will-be-removed-by-12-1-22/

* revert removal of commented macos jobs

* run apt-get update and upgrade

* cleanup Prep snapshot section
This commit is contained in:
Andy Alt 2022-08-20 17:29:38 -05:00 committed by Rampoina
parent 5b443a4c08
commit c4c426ed74
3 changed files with 77 additions and 45 deletions

View File

@ -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

39
.github/workflows/snapshot.yml vendored Normal file
View File

@ -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

View File

@ -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)