mirror of
https://github.com/rwengine/openrw.git
synced 2025-01-31 12:01:38 +01:00
Merge pull request #761 from Lihis/migrate-travis-to-gh-actions
Migrate Travis CI to GitHub Actions
This commit is contained in:
commit
556cdfbbf1
79
.github/workflows/build-and-test.yml
vendored
Normal file
79
.github/workflows/build-and-test.yml
vendored
Normal file
@ -0,0 +1,79 @@
|
||||
name: Build and Test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main" ]
|
||||
pull_request:
|
||||
branches: [ "main" ]
|
||||
# Allow to run manually
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
BUILD_TYPE: Release
|
||||
XDG_RUNTIME_DIR: /tmp/openrw-runtimedir
|
||||
ALSOFT_DRIVERS: "null"
|
||||
|
||||
jobs:
|
||||
archlinux:
|
||||
name: Arch Linux
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: docker.io/archlinux/archlinux:latest
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
pacman -Syy --noconfirm --disable-sandbox \
|
||||
git core/gcc extra/llvm extra/clang make ninja curl \
|
||||
extra/boost extra/cmake extra/ffmpeg extra/bullet extra/glm \
|
||||
extra/openal extra/sdl2 extra/qt5-base extra/freetype2
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Make runtime directory
|
||||
run: mkdir -p ${XDG_RUNTIME_DIR}
|
||||
- name: Build and test
|
||||
run: mkdir build && cd build && ctest -VV -S ../cmake/ctest/script_ci.ctest
|
||||
fedora:
|
||||
name: Fedora
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: quay.io/fedora/fedora:latest
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
dnf install -y git-core boost-devel gcc gcc-c++ clang llvm lcov curl \
|
||||
boost-devel cmake make ninja-build bullet-devel ffmpeg-free-devel \
|
||||
glm-devel openal-soft-devel SDL2-devel qt5-qtbase-devel \
|
||||
freetype-devel libasan
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Make runtime directory
|
||||
run: mkdir -p ${XDG_RUNTIME_DIR}
|
||||
- name: Build and test
|
||||
run: mkdir build && cd build && ctest -VV -S ../cmake/ctest/script_ci.ctest
|
||||
ubuntu:
|
||||
name: Ubuntu
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt-get update && \
|
||||
sudo apt-get install --no-install-recommends --no-upgrade -y \
|
||||
git-core build-essential cmake ninja-build clang llvm lcov curl \
|
||||
libavcodec-dev libavformat-dev libboost-program-options-dev \
|
||||
libboost-system-dev libbullet-dev libglm-dev libopenal-dev \
|
||||
libsdl2-dev libboost-test-dev libqt5opengl5-dev libfreetype6-dev \
|
||||
iwyu qtbase5-dev qt5-qmake
|
||||
env:
|
||||
DEBIAN_FRONTEND: noninteractive
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Make runtime directory
|
||||
run: mkdir -p ${XDG_RUNTIME_DIR}
|
||||
- name: Build and test
|
||||
run: mkdir build && cd build && ctest -VV -S ../cmake/ctest/script_ci.ctest
|
62
.travis.yml
62
.travis.yml
@ -1,62 +0,0 @@
|
||||
language: cpp
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env: NAME="Ubuntu Linux (Latest)" NAME_SUFFIX="ubuntu" TEST_COVERAGE=1
|
||||
services: docker
|
||||
script:
|
||||
- scripts/docker/docker_travis.sh "ubuntu_latest.docker"
|
||||
- os: linux
|
||||
compiler: clang
|
||||
env: NAME="Fedora Linux (Latest)" NAME_SUFFIX="fedora-llvm"
|
||||
services: docker
|
||||
script:
|
||||
- scripts/docker/docker_travis.sh "fedora_latest.docker"
|
||||
- os: linux
|
||||
compiler: gcc
|
||||
env: NAME="Arch Linux (Latest)" NAME_SUFFIX="arch" DEBUG=1
|
||||
services: docker
|
||||
script:
|
||||
- scripts/docker/docker_travis.sh "arch_latest.docker"
|
||||
# - os: linux
|
||||
# compiler: gcc
|
||||
# env: NAME="conan" NAME_SUFFIX="conan" USE_CONAN=1
|
||||
# script:
|
||||
# - scripts/docker/docker_travis.sh "conan_base.docker"
|
||||
- os: osx
|
||||
compiler: clang
|
||||
env: NAME="Apple macOS" NAME_SUFFIX="mac"
|
||||
osx_image: xcode12.5
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/Library/Caches/Homebrew
|
||||
before_cache:
|
||||
- brew cleanup
|
||||
addons:
|
||||
homebrew:
|
||||
packages:
|
||||
- boost
|
||||
- cmake
|
||||
- bullet
|
||||
- ffmpeg
|
||||
- glm
|
||||
- openal-soft
|
||||
- qt5
|
||||
- sdl2
|
||||
- jack
|
||||
- freetype
|
||||
install:
|
||||
- export PATH="/usr/local/opt/qt/bin:$PATH"
|
||||
script:
|
||||
- mkdir -p "$TRAVIS_BUILD_DIR/build"
|
||||
- ctest -VV -S "$TRAVIS_BUILD_DIR/cmake/ctest/script_ci.ctest"
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
# irc:
|
||||
# channels:
|
||||
# - chat.freenode.net#openrw
|
||||
# template:
|
||||
# - "%{repository}/%{branch} (%{commit} - %{author}): %{build_url}: %{message}"
|
@ -74,14 +74,15 @@ function(openrw_build_name BUILDER_NAME_RES BUILD_NAME_RES)
|
||||
endif()
|
||||
|
||||
if(MODEL_NAME STREQUAL "continuous")
|
||||
if("$ENV{TRAVIS}")
|
||||
message(STATUS "Travis detected")
|
||||
set(BUILDER_NAME "Travis")
|
||||
set(REPO_NAME "$ENV{TRAVIS_REPO_SLUG}")
|
||||
set(REPO_BRANCH "$ENV{TRAVIS_BRANCH}")
|
||||
set(GIT_HASH "$ENV{TRAVIS_COMMIT}")
|
||||
set(_EVENT_TYPE "$ENV{TRAVIS_EVENT_TYPE}")
|
||||
set(SUBMIT TRUE)
|
||||
if("$ENV{GITHUB_ACTIONS}")
|
||||
message(STATUS "GitHub Actions detected")
|
||||
set(BUILDER_NAME "GitHub Actions")
|
||||
set(REPO_NAME "$ENV{GITHUB_REPOSITORY}")
|
||||
set(REPO_BRANCH "$ENV{GITHUB_REF}")
|
||||
set(GIT_HASH "$ENV{GITHUB_SHA}")
|
||||
set(_EVENT_TYPE "$ENV{GITHUB_EVENT_NAME}")
|
||||
# FIXME: enable submit
|
||||
set(SUBMIT FALSE)
|
||||
elseif("$ENV{APPVEYOR}")
|
||||
message(STATUS "AppVeyor detected")
|
||||
set(BUILDER_NAME "AppVeyor")
|
||||
|
@ -144,9 +144,9 @@ if(TEST_COVERAGE)
|
||||
if(_RE_REFSPEC)
|
||||
set(GIT_BRANCH "${CMAKE_MATCH_1}")
|
||||
message(STATUS "Git branch detected from .git directory: ${GIT_BRANCH}")
|
||||
elseif(DEFINED ENV{TRAVIS_BRANCH})
|
||||
set(GIT_BRANCH "$ENV{TRAVIS_BRANCH}")
|
||||
message(STATUS "Git branch detected from TRAVIS_BRANCH environment variable: ${GIT_BRANCH}")
|
||||
elseif(DEFINED ENV{GITHUB_REF})
|
||||
set(GIT_BRANCH "$ENV{GITHUB_REF}")
|
||||
message(STATUS "Git branch detected from GITHUB_BRANCH environment variable: ${GIT_BRANCH}")
|
||||
else()
|
||||
message("Git branch unknown: uploading coverage might nog work")
|
||||
endif()
|
||||
|
@ -1,30 +0,0 @@
|
||||
FROM archlinux:base
|
||||
|
||||
# Work-around the issue with glibc 2.33 on old Docker engines
|
||||
# Extract files directly as pacman is also affected by the issue
|
||||
# https://github.com/lxqt/lxqt-panel/pull/1562 and
|
||||
# https://github.com/actions/virtual-environments/issues/2658
|
||||
RUN patched_glibc=glibc-linux4-2.33-4-x86_64.pkg.tar.zst && \
|
||||
curl -LO "https://repo.archlinuxcn.org/x86_64/$patched_glibc" && \
|
||||
bsdtar -C / -xf $patched_glibc
|
||||
|
||||
RUN pacman -Syy --noconfirm \
|
||||
core/gcc \
|
||||
extra/llvm \
|
||||
extra/clang \
|
||||
make \
|
||||
ninja \
|
||||
curl \
|
||||
extra/boost \
|
||||
extra/cmake \
|
||||
extra/ffmpeg \
|
||||
extra/bullet \
|
||||
community/glm \
|
||||
extra/openal \
|
||||
extra/sdl2 \
|
||||
extra/qt5-base \
|
||||
extra/freetype2
|
||||
|
||||
# FIXME: lcov
|
||||
|
||||
CMD ["/bin/bash"]
|
@ -1,40 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
curdir=$(dirname "$(readlink -f "$0")")
|
||||
|
||||
docker=$1
|
||||
|
||||
# Build docker image
|
||||
"$curdir/docker_tool.py" build -d "$docker" -t openrw_build_image
|
||||
|
||||
# Start docker container + add travis user
|
||||
"$curdir/docker_tool.py" create -t openrw_build_image -n openrw_builder -U travis \
|
||||
-e \
|
||||
NAME_SUFFIX=$NAME_SUFFIX \
|
||||
CI=$CI \
|
||||
TRAVIS=$TRAVIS \
|
||||
SHIPPABLE=$SHIPPABLE \
|
||||
CODECOV_ENV=$CODECOV_ENV \
|
||||
CODECOV_TOKEN=$CODECOV_TOKEN \
|
||||
CODECOV_URL=$CODECOV_URL \
|
||||
CODECOV_SLUG=$CODECOV_SLUG \
|
||||
TRAVIS_REPO_SLUG=$TRAVIS_REPO_SLUG \
|
||||
TRAVIS_BRANCH=$TRAVIS_BRANCH \
|
||||
TRAVIS_COMMIT=$TRAVIS_COMMIT \
|
||||
TRAVIS_JOB_NUMBER=$TRAVIS_JOB_NUMBER \
|
||||
TRAVIS_PULL_REQUEST=$TRAVIS_PULL_REQUEST \
|
||||
TRAVIS_JOB_ID=$TRAVIS_JOB_ID \
|
||||
TRAVIS_TAG=$TRAVIS_TAG \
|
||||
TRAVIS_OS_NAME=$TRAVIS_OS_NAME \
|
||||
TRAVIS_EVENT_TYPE=$TRAVIS_EVENT_TYPE \
|
||||
USE_CONAN=$USE_CONAN \
|
||||
TEST_COVERAGE=$TEST_COVERAGE \
|
||||
ALSOFT_DRIVERS=null \
|
||||
CC=$CC \
|
||||
CXX=$CXX \
|
||||
DEBUG=$DEBUG \
|
||||
XDG_RUNTIME_DIR=/tmp
|
||||
|
||||
# execute test
|
||||
"$curdir/docker_tool.py" exec -n openrw_builder -U travis -- /bin/bash -c \
|
||||
"ctest -VV -S /src/cmake/ctest/script_ci.ctest"
|
@ -1,30 +0,0 @@
|
||||
FROM fedora:latest
|
||||
|
||||
# ffmpeg-devel needs rpmfusion
|
||||
RUN dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
|
||||
https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
|
||||
|
||||
RUN dnf update -y \
|
||||
&& dnf install -y \
|
||||
boost-devel \
|
||||
gcc \
|
||||
gcc-c++ \
|
||||
clang \
|
||||
llvm \
|
||||
lcov \
|
||||
curl \
|
||||
boost-devel \
|
||||
cmake \
|
||||
make \
|
||||
ninja-build \
|
||||
bullet-devel \
|
||||
ffmpeg-devel \
|
||||
glm-devel \
|
||||
openal-soft-devel \
|
||||
SDL2-devel \
|
||||
qt5-qtbase-devel \
|
||||
freetype-devel \
|
||||
libasan \
|
||||
&& ln -s /usr/bin/python3 /usr/bin/python
|
||||
|
||||
CMD ["/bin/bash"]
|
@ -1,30 +0,0 @@
|
||||
FROM ubuntu:latest
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install --no-install-recommends --no-upgrade -y \
|
||||
build-essential \
|
||||
cmake \
|
||||
ninja-build \
|
||||
gcc \
|
||||
g++ \
|
||||
clang \
|
||||
llvm \
|
||||
lcov \
|
||||
curl \
|
||||
libavcodec-dev \
|
||||
libavformat-dev \
|
||||
libboost-program-options-dev \
|
||||
libboost-system-dev \
|
||||
libbullet-dev \
|
||||
libglm-dev \
|
||||
libopenal-dev \
|
||||
libsdl2-dev \
|
||||
libboost-test-dev \
|
||||
libqt5opengl5-dev \
|
||||
libfreetype6-dev \
|
||||
iwyu \
|
||||
qt5-default
|
||||
|
||||
CMD ["/bin/bash"]
|
Loading…
x
Reference in New Issue
Block a user